首先先让我们来创建一张测试表
hive> create table test(id string)partitioned BY (day string); OK Time taken: 0.115 seconds hive>
从另一张表中的数据 id 查询出来插入当前测试表中
hive> insert into test PARTITION(day='2016-05-06') select id from on_duty_report; hive> select * from test; OK 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461662887 2016-05-06 1461684396 2016-05-06 1462418503 2016-05-06 Time taken: 0.043 seconds, Fetched: 12 row(s)
然后我们再来添加一个为 name 的字段
hive> ALTER TABLE test ADD COLUMNS(name string); OK Time taken: 0.073 seconds hive> desc test; OK id string name string day string # Partition Information # col_name data_type comment day string Time taken: 0.05 seconds, Fetched: 8 row(s)
从 on_duty_report 表中查询 ID ,shop_id 覆盖 test 分区。
hive> insert OVERWRITE table test PARTITION(day='2016-05-06') select id,shop_id from on_duty_report;
再次查询该表新增字段为 NULL 值。
hive> select * from test; OK 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461662887 NULL 2016-05-06 1461684396 NULL 2016-05-06 1462418503 NULL 2016-05-06 Time taken: 0.036 seconds, Fetched: 12 row(s)
解决办法:删除该天分区从新插入数据。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于