0. 如果原来的表里有分区最好先把分区删掉。
例如如果原来的表里有一个叫‘date’的分区,新灌入的数据里如果也有叫‘date’的分区,新数据灌入以后可能读不出来。
--在hive中操作
alter table table10_jin drop partition(tablename='alp',data_date='alp',part1='alp',part2='alp');
1. 更改原始数据的间隔:
sed -i 's/\t/\x01/g' nohead_samples_all_flag_new.txt
2. 用readlink命令直接获取$0参数的全路径文件名
readlink -f nohead_samples_all_flag_new1.txt
注:以下3-6需要在hive中操作。
3. 修改表/分区的文件格式
alter table table10_jin set fileformat textfile;
4.增加/替换列
增加或者替换列的语句如下,其中ADD COLUMNS在现有列之后但在分区列之前增加新列,REPLACE COLUMNS先删除现存列,然后再增加新列。
alter table table10_jin replace columns(
imei string,
apply_date string,
flag string,
date string);
5. 导入数据
把已经有的4个分区先用”alp“填充好。
load data local inpath '/data/rong/zhuli/common_fraud_model/nohead_samples_all_flag_new1.txt' overwrite into table table10_jin partition(tablename='alp',data_date='alp',part1='alp',part2='alp');
6. 修改表名
alter table table10_jin rename to alp_common_antifraud_samples;