Hive常用操作以及java.io.IOException: java.lang.RuntimeException: ORC split generation failed问题处理

使用datagrip连接hive

-- 切换数据库

use testdb;

create database testdb;

-- 创建表

create table t_user(

    id int,

    name varchar(100),

    age int

);

create table t_user3(

    id int,

    name varchar(100),

    age int

)

row format delimited fields terminated by ','

    STORED AS TEXTFILE;

-- 创建表指定分区key

create table testdb.mytable1(

    id int,

    name varchar(100),

    age int

) partitioned by (partition_key int) ;

-- 创建user_info表

 CREATE TABLE `test.user_info`(           
   `id` bigint,                               
   `user_uuid` string,                        
   `user_name` string,                        
   `user_cardid` bigint,                      
   `user_phone` bigint,                       
   `user_age` bigint,                         
   `user_sex` string,                         
   `user_address` string,                     
   `user_birthday` timestamp,                 
   `salary` double,                           
   `user_occ` string,                         
   `time` string,                             
   `user_description` string) ;

-- 插入数据

可以通过insert和updatesql语句来操作,不过执行效率很慢,推荐通过文件的方式来写入数据

-- 这里需要结合hdfs来操作

-- 新建文本文件

[hdfs@master hive-server2]$ vim ~/user.txt

1,zhangsan,18

2,lisi,19

3,wangwu,17

4,zhaoliu,30

-- 将文件放到库中

hadoop fs -put ~/user.txt /warehouse/tablespace/managed/hive/testdb.db/t_user3

-- 查看建表语句,可以通过这个语句看到存储文件地址

show create table t_user;

--   'hdfs://master:8020/warehouse/tablespace/managed/hive/testdb.db/t_user'

--删除表

drop table t_user;

truncate table testdb.mytable;

--查询表

select * from t_user3;

-- 查询数据条数

SELECT COUNT(*) FROM test.user_info;

-- 显示创建的表

show tables;

-- 查看表的字段信息

DESCRIBE testdb.my_table;

问题处理

java.io.IOException: java.lang.RuntimeException: ORC split generation failed with exception: org.apache.orc.FileFormatException: Malformed ORC file hdfs://master:8020/warehouse/tablespace/managed/hive/testdb.db/t_user2/user.txt. Invalid postscript. org.apache.orc.FileFormatException:Malformed ORC file hdfs://master:8020/warehouse/tablespace/managed/hive/testdb.db/t_user2/user.txt. Invalid postscript.

这种报错是上传的是txt文件,而表默认使用orc的方式读取文件,导致读取失败,这里可以通过建表语句指定为txt格式

 STORED AS TEXTFILE;

也可以使用标准orc文件来解决这种问题

-- insert overwrite 语法

create temporary table t4
(
    id   int,
    name string,
    age  int
);

insert into t4(id,name,age) values(3,'aaa', 18);

insert overwrite table t4
    select * from t2;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰灰__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值