簡體   English   中英

將數據從包含字典的 CSV 加載到配置單元表中

[英]Load data into hive table from CSV containing dictionary

我有一個 CSV 文件,我想把它放在一個配置單元表中。 CSV 包含某些列的字典。

該文件如下所示:

a,b,{'c':'d','e':'f'},g

所以表格應該是這樣的:

| col1     | col2           | col3              | col4|
| -------- | -------------- | ----              | --- |
| a        | c              | {'c':'d','e':'f'} |   g |

但它拿起括號內的逗號。

如何忽略括號內的逗號。

我用它來編寫蜂巢表。

create external table mytable(
  col1 string,
  col2 string,
  col3 string,
  col4 string
) 

row format delimited fields terminated by ',' stored as textfile location '/user/myuser/mydir/';

如果您可以用雙引號將列括起來,則可以使用 OpenCSVSerde 正確加載數據。 大多數 csv 生成工具應該能夠做到這一點。

您的文件應如下所示-

"a","b","{'c':'d','e':'f'}","g"

你的腳本應該是這樣的 -

   col1    STRING, 
   col2    STRING, 
   col3    STRING, 
   col4    STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\t",
   "quoteChar"     = "\""
)  
LOCATION '/your/folder/location/';

您可以查看此鏈接https://cwiki.apache.org/confluence/display/Hive/CSV+Serde 現在,這個過程對於字符串列非常適用,對於其他數據類型,您需要在下一步中轉換它們。

暫無
暫無

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

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