gpt4 book ai didi

hadoop - 使用load命令加载数据到hive静态分区表

转载 作者:可可西里 更新时间:2023-11-01 14:24:57 26 4
gpt4 key购买 nike

如果它是非常基本的,请不要介意:

测试.txt

1 拉维 100 海德
2 克里希纳 200 海德
3 fff 300 秒

我在 hive 中创建了一个表,在 city 上进行了分区,并加载了如下数据:

create external table temp(id int, name string, sal int) 
partitioned by(city string)
location '/testing';

将路径“/test.txt”中的数据加载到表临时分区(city='hyd');

在 HDFS 中,结构是/testing/temp/city=hyd/test.txt

当我将表查询为“select * from temp”时;

输出:

temp.id temp.name temp.sal temp.city  
1 ravi 100 hyd
2 krishna 200 hyd
3 fff 300 hyd

我的问题是,为什么第三行的城市名称“sec”在输出中变为“hyd”?

我这边有什么问题吗?

提前致谢!!!

最佳答案

你的问题是这样的:

load data inpath '/test.txt' into table temp partition(city='hyd');

您加载到此分区中的所有数据都带有 city = 'hyd'。如果您正在进行静态分区,则您有责任将正确的值放入分区。

只需从您的 txt 文件中删除最后一行,将其放入 test2.txt 并执行:

load data inpath '/test.txt' into table temp partition(city='hyd');
load data inpath '/test2.txt' into table temp partition(city='sec');

是的,不太舒服,但是静态分区就是这样工作的。

关于hadoop - 使用load命令加载数据到hive静态分区表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39666932/

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