我知道红移和红移光谱不支持嵌套类型,但我想知道有什么技巧可以绕过这个限制,用红移光谱在S3中查询我们的嵌套数据?在这个post中,他展示了如何对JSON文件执行此操作,但对Parquet则不同。我们有没有其他技巧可以应用在拼图文件上?
实际的Schema类似于:(由AWS-Glue爬虫提取)
CREATE EXTERNAL TABLE `parquet_nested`(
`event_time` string,
`event_id` string,
`user` struct<ip_address:string,id:string,country:string>,
`device` struct<platform:string,device_id:string,user_agent:string>
)
PARTITIONED BY (
`partition_0` string,
`partition_1` string,
`partition_2` string,
`partition_3` string,
`partition_4` string)
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://...'发布于 2019-02-13 04:03:02
@Am1rr3zA现在,RedShift spectrum支持查询嵌套数据集。它不仅支持JSON,还支持压缩格式,如parquet、orc。这里是reference sample from AWS
我已经在我的s3存储桶中创建了指向拼图文件的外部表。所以这是可能的。
试一下这个脚本
CREATE EXTERNAL TABLE spectrum.parquet_nested (
event_time varchar(20),
event_id varchar(20),
user
struct<ip_address:varchar(20),id:varchar(20),country:varchar(20)>,
device
struct<platform:varchar(20),device_id:varchar(20),user_agent:varchar(20)>
)
STORED AS PARQUET
LOCATION 's3://BUCKETNAME/parquetFolder/';希望,这将节省您的技巧冒险:)
https://stackoverflow.com/questions/48645982
复制相似问题