【问题标题】:Error in data while creating external tables in Athena在 Athena 中创建外部表时出现数据错误
【发布时间】:2021-05-28 05:55:09
【问题描述】:

我的数据为 CSV 格式,格式如下:

Id -> tinyint

名称 -> 字符串

  Id  Name
  1   Alex
  2   Sam

当我将 CSV 文件导出到 S3 并创建 Athena 表时,数据转换为以下格式。

 Id   Name
 1    "Alex"
 2    "Sam"

创建表格时如何去掉双引号?

感谢任何帮助。

【问题讨论】:

    标签: csv hive amazon-athena external-tables hive-serde


    【解决方案1】:

    默认情况下,如果未指定 SerDe,Athena 使用 LasySimpleSerDe,它不支持引用值并将引号作为值的一部分读取。如果您的 CSV 文件包含带引号的值,请使用 OpenCSVSerde(如果不是逗号,请指定正确的 separatorChar):

    CREATE EXTERNAL TABLE mytable(
      id   tinyint,
      Name string
    )
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
    WITH SERDEPROPERTIES (
     'separatorChar' = ',',
       'quoteChar' = '\"', 
       'escapeChar' = '\\'
    )
    LOCATION 's3://my-bucket/mytable/' 
    ;
    

    阅读手册:https://docs.aws.amazon.com/athena/latest/ug/csv-serde.html 另请参阅有关data types in OpenCSVSerDe的答案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      相关资源
      最近更新 更多