所以我做了所有的研究,但在Hive的任何地方都看不到同样的问题。
点击下面的链接,我对引号中的数据没有任何问题。。
https://github.com/ogrodnek/csv-serde
我的外部表创建有下面的serde属性,但是由于某些原因,默认的escapechar('')被我的数据的双引号(“)所取代。
CREATE EXTERNAL TABLE IF NOT EXISTS people_full(
`Unique ID` STRING,
.
.
.
.
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"escapeChar" = "\\"
)
STORED AS TEXTFILE
数据问题:
hdfs源数据示例:“\”robs business目标配置单元输出:““”robs business
所以在替换后的robs business中看到的三个双引号会导致数据不需要的数据定界(列是一个很长的字符串)可能是因为hive无法处理数据内部的三个双引号(引号(“)也是我的默认引号字符)?
为什么会这样?有解决办法吗?请帮忙。非常感谢。
最好的,阿莎
2条答案
按热度按时间ef1yzkbh1#
试着用它逃跑会有用的。请查看下面的截图示例。
1tu0hz3e2#
要将csv文件导入到hdfs,并在数据之间使用双qoutes,并为该文件创建配置单元表,请按照配置单元中的查询创建外部表,该表工作正常,并显示文件中截至的每条记录。
在这里,tablename表示表的名称,数据类型类似于string、int或other,colname表示要给出的列的名称,最后dir\u name是csv或文本文件在hdfs location中的位置。