簡體   English   中英

直線在 csv 導出上拆分數據行

[英]Beeline splits data row on csv export

我的 csv output 文件有幾行被分成兩個單元格,因為 Hive 表中的數據具有字符串條目; 導致分裂的符號。


PROPER ROW
'xxx-xxxxxx','value','NULL','value','v','value','value','1.0','value','0.0','value',value,'value','value'

ODD ROW
'xxx-xxxxx','value','NULL','value','v','value','value','value','value','value','value','value','VERY LONG NAME; 

SECOND CELL OF ODD ROW
 ;VERY LONG NAME CONTINUED','VERY LONG NAME '

我試圖改變 output 格式和字段大小但沒有成功。 行仍然被分成兩個單元格。

beeline -u jdbc:hive2://host:10000/default -n user -p xxxxx --silent=true --outputformat=csv -f sql_code.sql > output.csv

我希望我的行不被分成多個單元格。 這可以通過 escaping 來完成; 象征

'xxx-xxxxxx','value','NULL','value','v','value','value','1.0','value','0.0','value',value,'value','value'

'xxx-xxxxx','value','NULL','value','v','value','value','value','value','value','value','value','VERY LONG NAME VERY LONG NAME CONTINUED','value'

您可以使用選項“--outputformat=dsv”。默認情況下,分隔符是 pipe (|)。 您可以使用選項 --delimiterForDSV=',' 來更改它。

下一個示例有效:

create table temp.test_name           (                                                                                                                                                                                     
first_name  string
,last_name  string
,zipcode   string
)
partitioned by (part string)
stored as parquet location '../temp.db/test_name' tblproperties("parquet.compression=SNAPPY")
;

insert into temp.test_name partition(part='A') values
('David','David','00')
,('Ellen', 'Ellen','00')
,('David','David','00')
,('David', 'VERY LONG NAME; VERY LONG NAME CONTINUED','00');

Beeline 命令返回 4 行,與表中包含的相同:

beeline --color=true -u "jdbc..." --outputformat=dsv --delimiterForDSV=',' -f sql_code.hql > output.csv

有關更多信息,請查看下一個文檔: https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Separated-ValueOutputFormats

以下查詢將用逗號分隔的字符串連接到 hive 中的單個列:

select col1, concat('"',col2,'"')col2, col3 來自表;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM