【问题标题】:Is there an easy way to create a partitioned table from a managed table in Hive?有没有一种简单的方法可以从 Hive 中的托管表创建分区表?
【发布时间】:2013-10-11 12:13:22
【问题描述】:

我在 hive 中有一个托管表,我想根据其中的一列对其进行分区。 有没有一种简单的方法可以从此托管表创建分区表?

托管表 a (s,d,f,g,h,j,k, key)

将表 b 创建为表 a,按 key 分区。

谢谢

【问题讨论】:

    标签: mysql sql hadoop hive partition


    【解决方案1】:

    您可以通过动态分区来做到这一点:

    这是一个例子: 我有一些日志数据,其中包含字段

    id、tdate、信息 我创建了一个动态分区表

    CREATE TABLE log_partitioned(id STRING,  info STRING)
    PARTITIONED BY ( tdate STRING) 
    

    然后加载数据

    FROM logs lg
    INSERT OVERWRITE TABLE log_partitioned PARTITION(tdate)
    SELECT lg.id, lg.info, lg.tdate
    DISTRIBUTE BY tdate;
    

    它将通过托管表的动态分区成功加载数据。

    我发现本教程非常有用。请参考这个“http://kickstarthadoop.blogspot.com/2011/06/how-to-speed-up-your-hive-queries-in.html

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 1970-01-01
      • 2010-09-06
      • 2012-10-27
      • 2018-11-17
      • 2023-01-30
      • 2014-01-10
      • 1970-01-01
      相关资源
      最近更新 更多