簡體   English   中英

創建表 Athena 忽略行值中的逗號

[英]Create table Athena ignore comma in the row values

我正在使用以下腳本在 Athena 中創建一個表

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文件沒有逗號分隔值,它更像是一個excel文件。 問題是當任何列包含諸如“嗨,你好嗎”之類的文本時。 它被分成兩部分,因為有一個逗號,“嗨”和“你好嗎”變成兩個值並分成兩行。 如何使用上面的創建腳本避免這種情況?

CSV 文件:

在此處輸入圖片說明

嘗試使用

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

而不是DELIMITED

DELIMITED解串器只查看您提供的分隔符。 csv deserializet 將只使用一對雙引號"之外的那些。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM