【问题标题】:Hive partition folder changes after import to another table导入到另一个表后 Hive 分区文件夹更改
【发布时间】:2014-08-14 22:45:25
【问题描述】:

我有一个具有此配置的 Hive 表 TEST:

create external table if not exists TEST ( ID bigint, ACTIVITY_ID string, BATCH_NBR ) PARTITIONED BY (year INT, month INT, day INT) CLUSTERED BY (BATCH_NBR) into 20 buckets ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/user/lake/hive/test';

我在这个位置有 Hive 文件,我可以轻松地将其加载到 Hive 表中并且它可以工作。

/user/lake/hive/test/2013/01/01/part-r-00001

现在,如果我创建另一个表 STORE 并从该 TEST 表中插入一些数据,则文件夹结构将更改为 Test 表。我期待在加载相同的数据后,STORE 表的位置会是这样的:

/user/core/store/2014/07/03/batch123231.1313

但是上面的位置变成了这个:

/user/core/store/year=2013/month=01/day=01/

我正在使用insert overwrite table STORE select * from TEST; 查询从 TEST 加载 STORE 表。

如何加载该表并在目标中保留相同的文件夹结构?

【问题讨论】:

    标签: hadoop mapreduce hive hql hdfs


    【解决方案1】:

    Hive 中的内部表将遵循 /apps/hive/warehouse 文件夹中自己的/默认文件夹结构,如果从外部 Hive 表加载数据,则不会保留文件夹结构。我使用的是“商店”的内部表,所以它没有按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-28
      • 2015-05-21
      • 2018-10-30
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      相关资源
      最近更新 更多