当我加载数据时,整个数据列被覆盖

mzmfm0qo  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(393)

我在hadoop中尝试了一个简单的示例,如下所示:
我创建了一个表:

CREATE TABLE Empl(EmpID INT,EmpName STRING,SALARY FLOAT)
PARTITIONED BY (DOJ DATE)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

加载数据:

LOAD DATA LOCAL INPATH '/home/jugal/Desktop/example' INTO TABLE empl PARTITION(DOJ='2013-04-05');

文件中的数据:

101,Jugal,8000,'2015-04-04'
102,Kannappan,9000,'2015-04-04'
103,Prasanna,10000,'2014-04-01'
104,Hafiez,7000,'2015-04-09'
105,Ashwin,9500,'2013-04-05'

每次我加载分区数据时,整个doj列都会被我分区的数据覆盖。
据我所知,当根据特定日期对数据进行分区时,将创建一个目录,其中仅使用给定的匹配分区日期创建一个文件。

2w3rbyxf

2w3rbyxf1#

load data命令只将文件复制到目标目录。它不读取输入文件的记录,因此不能基于记录值进行分区。
这就是为什么您的记录会被您在分区中提到的静态值覆盖。
在您的情况下,我猜您正在寻找动态分区

相关问题