导入CSV文件到Hive

1. 上传CSV文件到hdfs

hadoop fs -put dwb_pulsar_c_inappropriate_hour.csv /user/root/data/

2. 创建textfile格式的临时表和orc格式的正式表

  • textfile临时表
CREATE TABLE `tmp.dwb_pulsar_c_inappropriate_hour`( 
  `session_id` string COMMENT '会话id',           
  `staff_id` string COMMENT 'B端用户id',          
  `user_id` string COMMENT 'C端用户id',           
  `root_org_id` string COMMENT '总组织机构id',    
  `org_id` string COMMENT '组织机构id',              
  `origin_type` string COMMENT '发起类型',        
  `refer_type` string COMMENT '创建来源类型',     
  `session_create_time` string COMMENT '会话创建时间',  
  `c_inappropriate_reason` string COMMENT 'C标记不合适原因',
  `c_inappropriate_time` string COMMENT 'C标记不合适时间')
PARTITIONED BY (                                   
  `dt` int COMMENT '日期分区',                     
  `hour` string COMMENT '小时分区')                
row format delimited fields terminated by ','
stored as textfile;
  • orc正式表
CREATE TABLE `dwb.dwb_pulsar_c_inappropriate_hour`( 
  `session_id` string COMMENT '会话id',           
  `staff_id` string COMMENT 'B端用户id',          
  `user_id` string COMMENT 'C端用户id',           
  `root_org_id` string COMMENT '总组织机构id',    
  `org_id` string COMMENT '组织机构id',           
  `jd_no` string COMMENT '职位编号',              
  `cv_no` string COMMENT '简历编号',              
  `origin_type` string COMMENT '发起类型',        
  `refer_type` string COMMENT '创建来源类型',     
  `session_create_time` string COMMENT '会话创建时间',  
  `c_inappropriate_reason` string COMMENT 'C标记不合适原因',
  `c_inappropriate_time` string COMMENT 'C标记不合适时间')
PARTITIONED BY (                                   
  `dt` int COMMENT '日期分区',                     
  `hour` string COMMENT '小时分区')                
row format delimited fields terminated by ','
stored as orc;

3. 载入hdfs到临时数据表

load data inpath '/user/root/data/dwb_pulsar_c_inappropriate_hour.csv' into table tmp.dwb_pulsar_c_inappropriate_hour partition(dt=20220316, hour=9);

 4. 临时表转到正式表

insert into table 
dwb.dwb_pulsar_c_inappropriate_hour partition(dt, hour) 
select * from tmp.dwb_pulsar_c_inappropriate_hour;

实现存储格式的转化,如果不使用间接转化,直接load data 到正式ORC表,会出现异常

Caused by: java.io.IOException: Malformed ORC file

原因:
ORC格式是列式存储的表,不能直接从本地或hdfs中的csv文件导入数据,只有当数据源表也是ORC格式存储时,才可以直接加载,否则会出现上述报错。

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值