菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
44
0

hive导入数据

原创
05/13 14:22
阅读数 24098
删除文档的第一行,文件导出第一行为列名
sed -i '1d' <file>
取第一行为日期的
cat hall.log | grep '2017-' > 0928.txt

替换分隔符为\01 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=2016-12-15 导入文件
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

 

发表评论

0/200
44 点赞
0 评论
收藏