【问题标题】:How to create an array of struct in aws athena - hive on parquet data如何在 aws athena 中创建结构数组 - 镶木地板数据上的配置单元
【发布时间】:2020-06-22 06:36:37
【问题描述】:

我尝试在 aws-athena 上使用 hive 在镶木地板数据上创建一个表:

CREATE TABLE IF NOT EXISTS db.test (
  country STRING ,
  day_part STRING ,
  dma STRING ,
  first_seen STRING, 
  geohash STRING ,
  last_seen STRING, 
  location_backfill ARRAY <
   element STRUCT <
    backfill_type: BIGINT, 
    brq: BIGINT ,
    first_seen: STRING, 
    last_seen: STRING ,
    num_days: BIGINT >>
  ) 
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://<location>'
TBLPROPERTIES (
  'parquet.compress'='SNAPPY', 
  'transient_lastDdlTime'='<sometime>')

我反复得到错误

第 9:12 行:不匹配的输入 'struct' 期望 {'(', 'array', '>'} (服务:amazonathena;状态代码:400;错误代码:invalidrequestexception;请求 ID:)

语法似乎很好,但不确定。数据存储在s3路径中 知道是什么导致了这个问题吗?

【问题讨论】:

    标签: hadoop struct hive amazon-athena hiveddl


    【解决方案1】:

    数组元素未命名,仅指定类型(结构):

    location_backfill ARRAY <
        STRUCT <
        backfill_type: BIGINT, 
        brq: BIGINT ,
        first_seen: STRING, 
        last_seen: STRING ,
        num_days: BIGINT >>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-04
      • 2015-05-18
      • 2019-05-15
      • 2022-01-19
      • 1970-01-01
      • 2018-05-11
      • 2020-12-20
      • 2019-06-30
      相关资源
      最近更新 更多