在 Hive CLI 上执行“alter table table_name drop partition(part_column < value)”时出现空指针错误

Posted

技术标签:

【中文标题】在 Hive CLI 上执行“alter table table_name drop partition(part_column < value)”时出现空指针错误【英文标题】:Null Pointer Error while doing "alter table table_name drop partition(part_column < value)" on Hive CLI 【发布时间】:2021-01-19 19:30:12 【问题描述】:

我有一个 Spark 作业 (Scala),它将时间序列数据写入 Hadoop,Hive 中有一个外部表。

该表由多列分区,其中一列 (circle) 的值中有空格(例如 "Punjab and Rajasthan")。

在我尝试做的火花工作中

sparksession.sql("""
alter table table_name 
drop if exists partition(creation_time < latestcreationtime)
"""
)

我收到 Hive Metastore 的非法字符异常,附加了堆栈跟踪。我在 hive CLI 中得到了同样的结果,看起来 Hive 无法读取空格。

用户类抛出异常:org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(消息:索引 131 处路径中的非法字符: /user/optimus/rohit/hive_dump/c360/version=v1.28/set_name=d_si/creation_time=1610994976/compaction_flag=U/si_lob=DTH/circle=Andaman 和尼科巴群岛);

【问题讨论】:

【参考方案1】:

1.尝试删除并重新创建表 2.你的数据可能有问题,底层数据类型和表类型是什么?

【讨论】:

以上是关于在 Hive CLI 上执行“alter table table_name drop partition(part_column < value)”时出现空指针错误的主要内容,如果未能解决你的问题,请参考以下文章

常用hive的CLI命令

无法在 Spark SQL 中查看 Hive 记录,但可以在 Hive CLI 上查看它们

Hive最终都会转化成啥程序来执行?

Hive CLI 命令解读

Hive CLI 命令解读

Hive-1.2.1_02_简单操作与访问方式