Hive 配置单元2.1.1表格创建CSV Serde

Hive 配置单元2.1.1表格创建CSV Serde,hive,double-quotes,hive-serde,Hive,Double Quotes,Hive Serde,所以我做了所有的研究,但在蜂箱的任何地方都看不到同样的问题 点击下面的链接,我对引号中的数据没有任何问题 我的外部表创建具有以下serde属性,但由于某种原因,默认的转义码('\')将被quoteChar替换,quoteChar是我的数据的双引号(“) CREATE EXTERNAL TABLE IF NOT EXISTS people_full( `Unique ID` STRING, . . . . ) ROW FORMAT SERDE 'org.apache.hadoop.hive.se

所以我做了所有的研究,但在蜂箱的任何地方都看不到同样的问题

点击下面的链接,我对引号中的数据没有任何问题

我的外部表创建具有以下serde属性,但由于某种原因,默认的转义码('\')将被quoteChar替换,quoteChar是我的数据的双引号(“)

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源数据示例:“\”抢占业务 目标配置单元输出:“”抢夺业务

因此,替换后在“”中看到的三个双引号会导致数据不需要的数据分隔(列是一个很长的字符串),可能是因为配置单元无法处理数据内部的三个双引号(引号(“)也是我的默认引号字符)

为什么会发生这种情况,有解决办法吗?请帮忙,非常感谢

最好的,
阿莎

试着用逃脱者,它会起作用的。请查找下面的屏幕截图示例。

要将csv文件导入到hdfs,并在数据之间添加双qoutes并为该文件创建配置单元表,请按照配置单元中的查询创建外部表,该表工作正常,并显示文件中截至的每条记录

create external table tablename (datatype colname,datatype2 colname2) row format
SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES 
("separatorChar" = ",","quoteChar" = "\"") stored as textfile location '/dir_name/';

这里,tablename表示表的名称,数据类型类似于string、int或其他,colname表示要给出的列的名称,最后dir\u name是csv或文本文件在hdfs位置的位置。

Hi@kundam,抱歉,我编辑了我的问题以显示正确的SQL。我使用的是“escapeChar”=“\\”然后我有提到的数据问题(在我的帖子中),所以我把它改为“escapeChar”=“\'”,以避免替换,它可以工作,但我不想更改默认的转义字符,即反斜杠。所以我的实际问题是(“\')被替换为默认的引号字符,这个已知的问题是不是任何配置单元版本?谢谢你的帮助。请发表你的文章,并将实际代码显示为文本而不是截图。其他人无法从您的图像复制和粘贴。详情请参阅。谢谢。@kundam:我的文本栏示例中有双引号——“5F367C99E4B079AF79A2B89”,“华盛顿:乔治和玛莎”,“友谊相聚,爱情加冕”,“第二栏中有两个双引号。”。上面的修正也可以用于此,因为我的转义引号是“请务必让我知道你是否有任何相同的修正。我的文本列示例中有双引号-”5F367C99E4B07999AF79A2B89“,“华盛顿:乔治和玛莎”,“通过友谊加入,通过爱加冕”在这里,第二列有两个双引号。有什么办法可以解决这个问题吗?