首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在红移光谱中创建嵌套拼花类型的外部表

如何在红移光谱中创建嵌套拼花类型的外部表
EN

Stack Overflow用户
提问于 2018-02-06 23:02:20
回答 1查看 3.2K关注 0票数 0

我知道红移和红移光谱不支持嵌套类型,但我想知道有什么技巧可以绕过这个限制,用红移光谱在S3中查询我们的嵌套数据?在这个post中,他展示了如何对JSON文件执行此操作,但对Parquet则不同。我们有没有其他技巧可以应用在拼图文件上?

实际的Schema类似于:(由AWS-Glue爬虫提取)

代码语言:javascript
复制
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://...'
EN

回答 1

Stack Overflow用户

发布于 2019-02-13 04:03:02

@Am1rr3zA现在,RedShift spectrum支持查询嵌套数据集。它不仅支持JSON,还支持压缩格式,如parquet、orc。这里是reference sample from AWS

我已经在我的s3存储桶中创建了指向拼图文件的外部表。所以这是可能的。

试一下这个脚本

代码语言:javascript
复制
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/';

希望,这将节省您的技巧冒险:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48645982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档