如何手动将数据创建/复制到Hive中的分区

时间:2018-07-12 19:12:41

标签: hive hdfs hive-partitions

我正在研究一个配置单元解决方案,其中我需要将一些值附加到大容量文件中。所以我没有附加它们,而是尝试使用map-reduce方法 方法如下

表创建:

create external table demo_project_data(data string) PARTITIONED BY (business_date string, src_sys_file_nm string, prd_typ_cd string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
LOCATION '/user/hive/warehouse/demo/project/data';


hadoop fs -mkdir -p /user/hive/warehouse/demo/project/data/business_date='20180707'/src_sys_file_nm='a_b_c_20180707_1.dat.gz'/prd_typ_cd='abcd'


echo "ALTER TABLE demo_project_data ADD IF NOT EXISTS PARTITION(business_date='20180707',src_sys_file_nm='a ch_ach_fotp_20180707_1.dat.gz',prd_typ_cd='ach')
LOCATION '/user/hive/warehouse/demo/project/data/business_date='20180707'/src_sys_file_nm='a_b_c_20180707_1.dat.gz'/prd_typ_cd='abcd';"|hive

hadoop fs -cp /apps/tdi/data/a_b_c_20180707_1.dat.gz /user/hive/warehouse/demo/project/data/business_date='20180707'/src_sys_file_nm='a_b_c_20180707_1.dat.gz'/prd_typ_cd='abcd'

echo "INSERT OVERWRITE DIRECTORY '/user/20180707'  select *,'~karthick~kb~demo' from demo_project_data where src_sys_file_nm='a_b_c_20180707_1.dat.gz' and business_date='20180707' and prd_typ_cd='abcd';"|hive

我的文件中有一些数据,但在上述查询中没有看到任何结果。将文件正确复制到正确的位置。 我做错了什么?查询没有问题

我还将遍历多个日期。我想知道这是否是正确的方法。

1 个答案:

答案 0 :(得分:-1)

您可以使用以下命令从分区中获取结果-

MSCK REPAIR TABLE <tablename>;

引荐,