Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按日期划分的配置单元分区?_Sql_Apache Spark_Hive_Hiveql_Bigdata - Fatal编程技术网

Sql 按日期划分的配置单元分区?

Sql 按日期划分的配置单元分区?,sql,apache-spark,hive,hiveql,bigdata,Sql,Apache Spark,Hive,Hiveql,Bigdata,我有一张像这样的外置桌子 CREATE EXTERNAL TABLE TAB(ID INT, NAME STRING) PARTITIONED BY(YEAR INT, MONTH STRING , DATES INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'; 我有这样的数据 /user/input/2015/jan/1; /user/input/2015/jan/30 如2000年至2016年,每年12个月30天 ALTER TABL

我有一张像这样的外置桌子

CREATE EXTERNAL TABLE TAB(ID INT, NAME STRING) PARTITIONED BY(YEAR INT, MONTH STRING , DATES INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
我有这样的数据

/user/input/2015/jan/1;
/user/input/2015/jan/30
如2000年至2016年,每年12个月30天

ALTER TABLE TAB ADD PARTITION(year = '2015', month = 'jan',dates = '5') LOCATION '/user/input/2015/jan/1';  
如果我这样做,我只得到一天的数据

select * from TAB where (year = '2015', month = 'jan',dates = '5'); 
如果我跑

select * from TAB where (year = '2015', month = 'jan',dates = '6'); 
我没有得到任何数据。请帮助我了解如何为上述场景更改表

您将获得1天的更改表选项卡AddPartitionYear='2015',month='jan',dates='5'LOCATION'/user/input/2015/jan/1';因为您在位置值中指定了1个文件

create table tab(id int,name string,dt string) partitioned by (year string,month string);

create table samp(id int,name string,dt string) row format delimited fields terminated by '\t';

load data inpath '\dir' into table samp;
insert overwrite table tab partition (y,m) select id,name dt,YEAR(dt),MONTH(dt) from samp;
在5天内创建分区,如下所示

ALTER TABLE TAB 
ADD PARTITION(dates <= '5') 
LOCATION '/user/input/2015/jan/'; 

改变表与所有日期唯一的选项,我遵循相同的喜欢
ALTER TABLE TAB ADD PARTITIONyear='2015',MOUNT='jan',dates='5'位置'/user/input/2015/jan/1'

在这种情况下,我不想将数据加载到本地。是否有其他选择?输入不匹配