如何将csv文件导出到具有逗号记录值的配置单元表中?

jv4diomz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(375)

输入文件

  1. 11/24/2013,bank of nyc,withdrawl,deposit,in progress
  2. 11/16/2014,bank of dc,opeanig,closing,resolved

我要他们在table上

  1. Date Bank name issue status
  2. 11/24/2013 bank of nyc withdrawl,deposit in progress
  3. 11/16/2014 bank of dc opeanig,closing resolved
20jt8wwn

20jt8wwn1#

好吧,问题是逗号没有转义…hive怎么知道逗号是字符串的一部分,还是分隔符?
如果在一个已知列中只能有额外的逗号,这是可能的,就像在本例中的第三列一样。然后,可以编写一个正则表达式,该表达式接受第二个逗号和最后一个逗号之间的任何内容,并将其与regexp serde一起使用。这适用于您的示例,因为只有'issue'可能有逗号。

  1. CREATE TABLE csvsample(
  2. date STRING,
  3. bank_name STRING,
  4. issue STRING,
  5. status STRING
  6. ) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
  7. WITH SERDEPROPERTIES (
  8. "input.regex" = "^([^,]+),([^,]+),(.+),([^,]+)$") ;
  9. hive> select * from csvsample;
  10. OK
  11. 11/24/2013 bank of nyc withdrawl,deposit in progress
  12. 11/16/2014 bank of dc opeanig,closing resolved

相关问题