aws athena 建hive表命令不对,向表中插入数据时引发错误

在EMR集群中使用Hive遇到插入数据时的AnalysisException错误,问题源于表定义的LOCATION为空字符串。通过重新创建表并指定Parquet格式及压缩方式(如LZO)解决了此问题,详细步骤和DDL语句在文中给出。

EMR集群,向hive表中插入数据时,引发错误:
org.apache.spark.sql.AnalysisException: Can not create a Path from an empty string


网上搜索不到解决方案,最终偶然发现了问题所在,记录如下:
1. 这是有问题的表,导出DDL是如下的:


实际我的建表命了,并没有指定任何参数,上面看到的参数是默认产生的:
CREATE EXTERNAL TABLE `dwt_ob_video_all_user` (
 `uid` string,
 `first_login_time` int,
 `last_login_time` int)
LOCATION
 '/root/db/rec/dwt_ob_video_all_user'

2.重新创建可以正常插入记录的表:
建表命令如下:
CREATE EXTERNAL TABLE `dwt_ob_video_all_user` (
 `uid` string,
 `first_login_time` int,
 `last_login_time` int)
ROW FORMAT SERDE
 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
 '/root/db/rec/dwt_ob_video_all_user'
TBLPROPERTIES (
 'parquet.compression'='lzo')


 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值