插入覆盖失败,出现空指针异常-
insert overwrite table external_partitioned partition(country_destination,gender) <br>
select (age_bucket,population_in_thousandsyear,country_destination,gender) <br>
from external_partitioned_rawtable;
失败:NullPointerException为空
对于动态分区插入,在执行insert
语句之前,必须执行配置单元的两个属性:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
然后执行insert语句(我已修改)
insert overwrite table external_partitioned partition(country_destination,gender)
select age_bucket,population_in_thousandsyear,country_destination,gender
from external_partitioned_rawtable;
希望这对你有帮助!!!
我有一个配置单元外部表,有3个分区列(a,B,C),现在我想从分区中删除B和C列。这样做可能吗?我已经尝试使用Alter table tab_name drop column col_name;---但它会抛出一个错误,说明无法删除分区列。
当使用外部配置单元表时,是否有一种方法可以删除目录中的数据,但通过查询保留分区。请注意,我不想删除表并重新创建它。我只想清空底层文件夹并重新启动一个进程。我的表很大,按年、月、日期和小时划分分区,手动重新创建分区需要大量时间。 谢谢
null 但在最后一步(4)中给了我一些错误。我在这里附加了几行错误。请帮忙。 我已经按照下面的链接完成了所有的步骤。在配置单元的外部表中创建分区
1-创建了源表 2-将数据从本地加载到源表 3-创建了另一个带有分区的表-partition_table 我不确定如何在外部表中进行分区。有人能帮我一步一步地描述一下吗?。
非常感谢任何帮助。