[英]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.