我的输入数据如下:
1,srinivas,courtthomas,memphis
2,vindhya,courtthomas,memphis
3,srinivas,courtthomas,kolkata
4,vindhya,courtthomas,memphis
我创建了以下查询:
create EXTERNAL table seesaw (id int,name string,location string) partitioned by (address string) row format delimited fields terminated by ',' lines terminated by '\n' stored as textfile LOCATION '/seesaw';
LOAD DATA INPATH '/sampledoc' OVERWRITE INTO TABLE seesaw PARTITION (address = 'Memphis');
当我试图获取我的查询时,它如下所示:
Select * from seesaw;
OK
1 srinivas courtthomas Memphis
2 vindhya courtthomas Memphis
3 srinivas courtthomas Memphis
4 vindhya courtthomas Memphis
我真的不明白最后一排是怎么显示孟菲斯的。
2条答案
按热度按时间uinbv5nw1#
仔细阅读代码:
注意只有三列,
id
,name
以及location
.但是你的数据,
有四列。这里有些可疑。
你要求划分一个只包含
courtthomas
由Memphis
. 结果让人大吃一惊的不是你想要的。fd3cxomn2#
如果您使用的是外部表,则需要为每个分区手动创建文件夹,即在您的情况下-创建两个文件夹[address=memphis]和[address=kolkata],并将相应的输入数据文件复制到相应的文件夹下,然后将分区添加到元数据中,如下所示:
请参阅本文,了解如何执行此操作的简单示例-配置单元外部表和分区