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')