gpt4 book ai didi

hadoop - hive 。动态分区并插入到特定列

转载 作者:行者123 更新时间:2023-12-02 21:09:35 25 4
gpt4 key购买 nike

有一个包含大约100列的HIVE表,按ClientNumber和Date列划分。
我正在尝试将来自另一个HIVE表的数据插入仅30列,以及动态创建Date分区。

问题是所有数据都被加载到“ClientNumber = 123 / date = __ HIVE_DEFAULT_PARTITION__”分区中,这并不是很正常。

该脚本如下所示:

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

FROM DBName.Table2
INSERT INTO TABLE DBName.Table1
PARTITION(ClientNumber=123, `Date`)
(col1, col2, ..., col29, `Date`)
SELECT
col1, col2, ..., col29, eventDate as `Date`

查询检索的 Date值都是正确的,没有NULL或其他非特征值。
删除或添加动态分区参数没有区别。
提供特定的 Date值(而不是动态查询填充的值)会导致创建正确的分区。

我是否缺少任何技巧或在分区表中填充特定数量的列时遇到问题?

附言是否需要将导入脚本中的所有其他列(col31-col100)列为NULL值得考虑?

最佳答案

如果我提出正确的问题,那么您在插入或选择中不应包含“日期”字段。如果使用别名,则可能会破坏分区规则的要求。因为它期望与定义架构的字段相同。该脚本应该是...

FROM DBName.Table2
INSERT INTO TABLE DBName.Table1
PARTITION(ClientNumber=123, Date)
SELECT col1, col2, ..., col29, eventDate as Date

关于hadoop - hive 。动态分区并插入到特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40718253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com