【问题标题】:S3 folder structure for hive partitioned tables without "=" in it配置单元分区表的 S3 文件夹结构,其中没有“=”
【发布时间】:2016-08-19 19:59:41
【问题描述】:

我有一个像这样的现有 S3 文件夹结构,

s3://mydata/{country}/{date}/
  • {country} 可以是 30 个不同国家/地区中的任何一个

  • {date} 可以是自 20150101 以来的任何日期

如何通过将 {country} 视为分区并将 {date} 视为子分区来在 Hive 中读取此内容?

【问题讨论】:

  • 你找到答案了吗?我也很好奇。
  • Hive 需要 '=' 来自动理解分区。实现这一点的唯一方法是分别创建指向父路径的表并使用特定路径“添加分区”。

标签: amazon-s3 hive emr


【解决方案1】:

可以使用 Hive DDL 语句ALTER TABLE ADD PARTITION

ALTER TABLE mydata
ADD PARTITION (country='south-africa', date='20191024')
LOCATION 's3://mydata/south-africa/20191024/';

您可以使用 shell 脚本编写此脚本,并将每个语句传递给 Hive,例如 hive -e 'ALTER TABLE $TABLE ADD PARTITION $PARTITION_SPEC LOCATION $PARTITION_LOCATION'

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AddPartitions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多