0

我尝试在 aws-athena 上创建一个表,并在镶木地板数据上使用配置单元,其中包含以下内容:

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 路径中,知道是什么导致了这个问题吗?

4

1 回答 1

1

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

location_backfill ARRAY <
    STRUCT <
    backfill_type: BIGINT, 
    brq: BIGINT ,
    first_seen: STRING, 
    last_seen: STRING ,
    num_days: BIGINT >>
于 2020-06-22T09:36:43.390 回答