【问题标题】:Creating hive partitions for multiple months using one script使用一个脚本创建多个月的 hive 分区
【发布时间】:2014-05-20 17:36:30
【问题描述】:

我有 4 年的数据。喜欢

'2011
 2012
 2013
 2014'

我必须根据一个月的数据运行查询。所以我正在创建如下分区。

'ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='01')
 LOCATION 'path';
 ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='02')
 LOCATION 'path';
 ALTER TABLE table1_2010Jan ADD PARTITION(year='2010', month='01', day='03')
 LOCATION 'path';'

我每个月的每一天都像上面一样创建单独的分区。

我想知道我们是否可以编写一个脚本(任何语言)并运行一次来​​为每年一个月的所有日子创建这些分区?或者有没有办法在蜂巢本身中做到这一点。

请有任何建议..

【问题讨论】:

  • 为什么需要创建分区?如果它用于插入数据,您始终可以使用动态分区插入,它们将为您创建。看看这里:cwiki.apache.org/confluence/display/Hive/DynamicPartitions
  • 我在 blob 上已有可用数据。我首先创建了一个外部表。现在我正在尝试为每一天创建分区并将分区指向数据的位置

标签: hadoop hive hiveql azure-hdinsight


【解决方案1】:

对于外部表,hive 做不到。你可以创建 shell/perl 脚本来做同样的事情(使用循环)。

对于 hive 管理的表,您可以使用 MSCK REPAIR 命令轻松完成。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RecoverPartitions%28MSCKREPAIRTABLE%29

您必须确保加载的数据是正确的分区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多