创建 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
我正在使用以下脚本在 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