我在s3中有一个数据集 123, "some random, text", "", "", 236
我在此数据集上构建了一个外部表:
CREATE EXTERNAL TABLE db1.myData(
field1 bigint,
field2 string,
field3 string,
field4 string,
field5 bigint,
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
ESCAPED BY '\\'
LOCATION 's3n://thisMyData/';
问题/问题:
当我这么做的时候 select * from db1.myData
字段2显示为
some random
我需要这片土地
some random, text
明白了:
1我无法更改分隔符,因为此位置有超过300个.csv文件
2转义者不是转义''
三。我使用的是hive0.13,因此无法使用csv-serde,也不允许将新jar导入集群(添加新jar是一个复杂的过程,因为我必须经过主管级的批准)
问题:
有办法让“越狱者”复活吗?!
还有其他解决办法吗??
欢迎所有建议!!
n、 b:这不是一个重复的问题。如果你认为这是一个重复,请引导我到正确的页面,我会把这个从这个门户网站:)
2条答案
按热度按时间nle07wnf1#
我不得不使用:
ESCAPED BY '\134'
也就是说:ESCAPED BY '\'
.另外,由于我是通过从json文件传入语句来调用athena create table语句,所以我不得不添加一个额外的
\
掩盖原作\
在json中。所以我在json文件中的最后一句话是这样的:ESCAPED BY '\\134'
.67up9zun2#
如果您使用的是hive 0.14,则可以使用如下csv serde:
有关详细信息,请参阅以下链接:
https://cwiki.apache.org/confluence/display/hive/csv+serde