删除文档的第一行,文件导出第一行为列名
sed -i '1d' <file>
取第一行为日期的
cat hall.log | grep '2017-' > 0928.txt 替换分隔符为\
sed -i 's/\t/\x1/g;s/;/\x1/g' test1.txt gz压缩
gzip -r test1.txt 查看文件
hdfs dfs -ls /hive/warehouse/ods_jungle_ad.db/table1/dt=-- 导入文件
hive -i /data/app/offline_analyse/conf/hive/init_hive.sql use ods_db;
load data local inpath '/home/hadoop/test/test1.txt.gz'
into table table1
partition (dt = '2016-12-15')
hive 默认的字段分隔符为ascii码的控制符\001,建表的时候用fields terminated by '\001',如果要测试的话,造数据在vi 打开文件里面,用ctrl+v然后再ctrl+a可以输入这个控制符\001。按顺序,\002的输入方式为ctrl+v,ctrl+b。以此类推。
当前我们新建的Hive表中,默认fields terminated by没有设置,那么就使用'\001'。
create table muses_role_log
(
table_name string,
id int,
type string,
big_date string
)
partitioned by (dt string)
关键字[INTO]意思是追加到表,[OVERWRITE]意思是是覆盖原表里的数据。
关键字[LOCAL]是指你加载文件的来源为本地文件,不写则为hdfs的文件。
如果是用程序接口直接写hdfs,需要执行如下语句hive才能访问
alter table ods_log.bigtable_log add partition (dt='2017-01-09',game_id='test');
删除错误数据。直接删除分区(删除分区后需要添加分区,不让HIVE没法显示数据)
alter table tlog_bigtable drop partition(dt='2017-11-28' , game_id = 'gz_m')
全表删除
truncate table gz_m