【问题标题】:data with enclosed by two times double quotes and separated by comma into HIVE table?用两次双引号括起来并用逗号分隔到 HIVE 表中的数据?
【发布时间】:2019-09-04 08:22:49
【问题描述】:

我正在尝试在配置单元中使用以下查询获取数据,我已使用以下脚本创建了外部表,

CREATE EXTERNAL TABLE Test(
  status string, 
  details string,
  timestamp string)
PARTITIONED BY ( id string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES ('separatorChar'=',', 'quoteChar' = '"')
STORED AS INPUTFORMAT 
    'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
    '';

在 hive 位置的 csv 文件具有以下格式。每个键值中有两次双引号。

PASS,"{""Category"": ""Test"", ""COMMENT"": ""reporting period in dataset: ['APR-2018', 'MAY-2018', 'JUN-2018']""}",2019-09-03 13:56:08

select * from Test where id=1;

返回低于输出。它应该有 csv 文件中存在的双引号。当我尝试在 excel 中打开文件时,它会显示“APR-2018”、“MAY-2018”、“JUN-2018”的单独列

PASS,{"Category": "Test", "COMMENT": "reporting period in dataset: ['APR-2018', 'MAY-2018', 'JUN-2018']"},2019-09-03 13:56:08

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    在您的表创建语句中,尝试删除 , 'quoteChar' = '\"' 看看这是否有助于您在数据中保留双引号。

    如果这不起作用,您可以尝试转义表创建语句中的“字符,通过编写 WITH SERDEPROPERTIES ('separatorChar'=',', 'quoteChar' = '\"') 看看这对您的桌子有何影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2014-10-19
      相关资源
      最近更新 更多