创建 table Athena 忽略行值中的逗号

Create table Athena ignore comma in the row values

我正在使用以下脚本在 Athena 中创建 table

CREATE EXTERNAL TABLE `itcfmetadata`(
  `itcf id` string, 
  `itcf control name` string, 
  `itcf control description` string, 
  `itcf process` string, 
  `standard` string, 
  `controlid` string, 
  `threshold` string, 
  `status` string, 
  `date reported` string, 
  `remediation (accs specific)` string, 
  `aws account id` string, 
  `aws resource id` string, 
  `aws account owner` string)
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
  ESCAPED BY '\'
  LINES TERMINATED BY '\n'
LOCATION
  's3://itcfmetadata/'
TBLPROPERTIES (  
  'skip.header.line.count'='1');

S3源文件为csv文件。此文件是从 excel 文件转换而来的,并且此 csv 文件 doe snot 具有逗号分隔值,它更像是一个 excel 文件。问题是当任何列包含诸如“嗨,你好吗”之类的文本时。它被分成两部分,因为有一个逗号,“嗨”和“你好吗”变成两个值并分成两行。如何使用上面的创建脚本避免这种情况?

CSV 文件:

尝试使用

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'

而不是DELIMITED

DELIMITED 反序列化器只查看您提供的定界符。 csv 反序列化将只使用一对双引号外的那些 ".

查看文档:https://docs.aws.amazon.com/athena/latest/ug/csv-serde.html