无法在hive分区表中查看数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在hive分区表中查看数据相关的知识,希望对你有一定的参考价值。

我有一个外部表,其中有一个名为rundate的分区列。我可以使用将数据加载到表中

DataFrame.write.mode(SaveMode.Overwrite).orc("s3://test/table")

然后我使用创建分区

spark.sql("ALTER TABLE table ADD IF NOT EXISTS PARTITION(rundate = '2017-12-19')")

代码工作正常,我可以看到分区。但我无法在Hive表中看到数据。

答案

您尚未以正确的文件夹结构保存分区数据,还手动添加了数据不存在的分区。

两件事:1。首先确保您在创建外部表的位置保存数据,并且文件夹结构与hive expect相同。例如,假设您的外部表名是table,分区列是rundate,分区值是2017-12-19,外部表是指向位置s3://test/table。然后保存分区2017-12-19的数据如下:

DataFrame.write.mode(SaveMode.Overwrite).orc("s3://test/table/rundate=2017-12-19/")

2.在使用最新添加的分区更新hive的Metastore的命令下,一次保存成功。

synatx: msck repair table <tablename>
msck repair table table

以上是关于无法在hive分区表中查看数据的主要内容,如果未能解决你的问题,请参考以下文章

hive外部表分区

hive表分区的修复

hive中怎样删除分区

使用Hive SQL插入动态分区的Parquet表OOM异常分析

使用Hive SQL插入动态分区的Parquet表OOM异常分析

hive中怎样删除分区