【问题标题】:External hive table on top of parquet returns no data镶木地板顶部的外部配置单元表不返回数据
【发布时间】:2020-12-20 12:57:42
【问题描述】:

我在通过 spark 编写的 parquet 文件夹上创建了一个 hive 表。在一台测试服务器中,它运行良好并给出结果(hive 版本 2.6.5.196),但在生产中它没有给出任何记录(hive 2.6.5.179)。有人可以指出确切的问题可能是什么吗?

【问题讨论】:

  • 你在这两种情况下都运行MSCK REPAIR了吗?
  • 是的,我在这两种情况下都尝试过 MSCK REPAIR

标签: apache-spark hive parquet


【解决方案1】:

如果您在现有分区结构之上创建表,则必须让表知道该位置存在分区。

MSCK REPAIR TABLE table_name; -- adds missing partitions
SELECT * FROM table_name; -- should return records now

如果该位置只有文件并且它们是预期的格式,则不会发生此问题。

您可以通过以下方式验证:

SHOW CREATE TABLE table_name; -- to see the expected format

【讨论】:

    【解决方案2】:

    在通过 spark 编写的 parquet 文件夹顶部创建 hive 表。

    1. 检查您正在使用的数据库是否可用 显示数据库;

    2. 检查您在测试服务器上创建的表的 ddl 以及生产环境中的另一个表 显示创建表table_name;

    确保两个 ddl 完全匹配。

    1. msck repair table table_name加载增量数据或所有分区的数据

    2. select * from table_name查看记录

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2021-05-16
      相关资源
      最近更新 更多