赞
踩
hadoop-Hive加载带引号的字段中带有逗号的CSV
我正在尝试将CSV文件加载到Hive表中,如下所示:
CREATE TABLE mytable
(
num1 INT,
text1 STRING,
num2 INT,
text2 STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ",";
LOAD DATA LOCAL INPATH '/data.csv'
OVERWRITE INTO TABLE mytable;
csv以逗号(,)分隔,如下所示:
1, "some text, with comma in it", 123, "more text"
由于第一个字符串中有一个',',这将返回损坏的数据。
有没有办法设置文本定界符或使Hive忽略字符串中的','?
我无法更改csv的定界符,因为它是从外部来源获取的。
6个解决方案
33 votes
问题是Hive无法处理引用的文本。 您要么需要通过更改字段之间的定界符来预处理数据(例如,使用Hadoop流作业),要么还可以尝试使用自定义CSV SerDe,后者使用OpenCSV来解析文件。
Lorand Bendig answered 2020-06-23T22:25:33Z
32 votes
如果可以重新创建或解析输入数据,则可以为CREATE TABLE指定转义字符:
ROW F
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。