我正在尝试将以下数据存储在 csv 文件中到 Hive 表中,但未能成功
Ann, 78%,7,
Beth,81%,5,
Cathy,83%,2,
数据存在于 CSV 文件中。我使用以下定义在 Hive 中创建了表:
Hive> CREATE TABLE test1 (Name String, Perc String, Rank String)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES ("input.regex" = "^(\w+)\,(\w+)\%\,(\w+)$",
"output.format.string" = "%1$s %2$s %3$s" )
STORED AS TEXTFILE;"
ok
hive> load data local inpath '/tmp/input.csv' into table test1;
ok
hive> Select * from test1;
ok
Name Perc Rank
Null Null Null
Null Null Null
Null Null Null
我无法找出错误。结果数据未加载到表中。
最佳答案
您不应该需要 RegexSerDe。您应该能够将分隔符设置为逗号。
CREATE TABLE test1(名称字符串、Perc 字符串、排名字符串)行格式分隔字段由 ',' 终止,存储为文本文件;
您还可以查看此 CVS Serde。 https://github.com/ogrodnek/csv-serde
关于regex - 在 Hive 表中以 CSV 格式加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30507602/