使用dervied列进行动态分区

时间:2016-02-18 06:46:19

标签: hive hiveql

我试图通过动态分区将数据插入到Hive表中

CREATE EXTERNAL TABLE target_tbl_wth_partition(   booking_id字符串,   code字符串,   txn_date时间戳,   logger字符串,   )   分区(txn_date date,txn_hour int)

txn_date = 20160216   txn_hour = 12

CREATE EXTERNAL TABLE stg_target_tbl_wth_partition(   booking_id字符串,   code字符串,   txn_date时间戳,   logger字符串,   )

插入覆盖表target_tbl_wth_partition分区(txn_date,hour(txn_date)) 从stg_target_tbl_wth_partition中选择booking_id,代码,txn_date,logger;

我无法在动态分区中插入派生列。任何有关如何处理此类案件的帮助都会有所帮助。

此致 勒凯什

1 个答案:

答案 0 :(得分:0)

我建议你从这样的事情开始......

CREATE TABLE blahblah (...)
PARTITIONED BY (aaa STRING, bbb STRING)
;
SET hive.exec.dynamic.partition = true
;
SET hive.exec.dynamic.partition.mode = nonstrict
;
INSERT INTO TABLE blahblah PARTITION (aaa, bbb)
SELECT ...,
  SUBSTRING(aaabbb,1,5) as aaa,
  SUBSTRING(aaabbb,7,2) as bbb
FROM sthg
;

......让它发挥作用;那么你可以开始尝试一些奇怪的和不受支持的语法,看看哪些有效,哪些无效。