如何解决根据S3中的Parquet文件在Athena中创建外部表时如何重命名列?
在基于S3中的Parquet文件在Athena中创建外部表时,有人知道如何重命名列吗?
我要加载的Parquet文件在s3结构中有一个名为export_date的列以及一个export_date分区。
示例文件路径为:'s3://bucket_x/path/to/data/export_date=2020-08-01/platform=platform_a'
CREATE EXTERNAL TABLE `user_john_doe.new_table`(
`column_1` string,`export_date` DATE,`column_3` DATE,`column_4` bigint,`column_5` string)
PARTITIONED BY (
`export_date` string,`platform` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
LOCATION
's3://bucket_x/path/to/data'
TBLPROPERTIES (
'parquet.compression'='GZIP')
;
所以我想做的是将export_date列重命名为export_date_exp。 AWS文档指出:
使Parquet按索引读取,这将允许您重命名 列,您必须使用parquet.column.index.access创建一个表 SerDe属性设置为true。
但是以下代码不会在export_date_exp列中加载任何数据:
CREATE EXTERNAL TABLE `user_john_doe.new_table`(
`column_1` string,`export_date_exp` DATE,`platform` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
WITH SERDEPROPERTIES ( 'parquet.column.index.access'='true')
LOCATION
's3://bucket_x/path/to/data'
TBLPROPERTIES (
'parquet.compression'='GZIP')
;
这个问题已经被问到了,但是没有得到答案:
How to rename AWS Athena columns with parquet file source?
我再次询问是因为文档明确指出了可能。
请注意:在我的特定用例中,我无法加载export_date列,因为我了解到按名称读取Parquet并不需要您加载每个列。就我而言,我不需要export_date列,因此避免了与分区名称的冲突。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。