Raj*_*Raj 3 hadoop hive hiveql hadoop2
请不要介意它是否是一个非常基本的:
1 ravi 100 hyd
2 krishna 200 hyd
3 fff 300秒
我在hive中创建了一个带有城市分区的表,并加载了如下数据:
create external table temp(id int, name string, sal int)
partitioned by(city string)
location '/testing';
Run Code Online (Sandbox Code Playgroud)
load data inpath '/test.txt' into table temp partition(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
Run Code Online (Sandbox Code Playgroud)
这里我的问题是为什么第三行中"sec"的城市名称在输出中变为"hyd"?
我这边有什么不对吗?
提前致谢 !!!
你的问题是这样的:
load data inpath '/test.txt' into table temp partition(city='hyd');
Run Code Online (Sandbox Code Playgroud)
您加载到此分区的所有数据都使用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');
Run Code Online (Sandbox Code Playgroud)
是的,不是那么舒服,但静态分区以这种方式工作.
| 归档时间: |
|
| 查看次数: |
11140 次 |
| 最近记录: |