我试着在aws-athena上创建一个表,其中包含有关以下内容的 Parquet 数据的配置单元:
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路径中
任何想法可能导致此问题?
最佳答案
数组元素未命名,仅指定类型(结构):
location_backfill ARRAY <
STRUCT <
backfill_type: BIGINT,
brq: BIGINT ,
first_seen: STRING,
last_seen: STRING ,
num_days: BIGINT >>
关于hadoop - 如何在AWS Athena中创建结构数组-关于 Parquet 数据的配置单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62508672/