【问题标题】:Class org.apache.spark.sql.hive.execution.HiveFileFormat$$anon$1 not found while trying to write dataframe to Hive native parquet table尝试将数据帧写入 Hive 本机镶木地板表时找不到类 org.apache.spark.sql.hive.execution.HiveFileFormat$$anon$1
【发布时间】:2020-05-08 07:55:46
【问题描述】:

会议

spark.conf.set('spark.sql.hive.convertMetastoreParquet', "true")

蜂巢表

spark.sql("create table table_name (ip string, user string) PARTITIONED BY (date date) STORED AS PARQUET")

插入

df.write.insertInto("table_name", overwrite=True)

错误

Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.hive.execution.HiveFileFormat$$anon$1

顺便说一句,插入 ORC 表是好的。以客户端模式在集群上运行。

【问题讨论】:

    标签: apache-spark pyspark hive bigdata


    【解决方案1】:

    您的 hive-site.xml 文件是否存在于 Spark 配置文件夹中?

    编辑:

    你可以试试:

    df.write.mode("overwrite").partitionBy("date").saveAsTable("db.table_name")
    

    应该不需要预先设置任何配置并运行 SQL create 语句。

    【讨论】:

    • 是的,我在使用 Hive、ORC 和 Text 表时没有问题,只有镶木地板。
    • 抱歉,我还不能离开 cmets(声誉低下)。我正在更新我的回复,请尽快查看。
    • saveAsTable 不会在 Hive 中创建表。仅在火花中。
    • 我不知道为什么它适用于我的情况。请注意,该错误发生在 Spark 版本 1.X 中。我正在使用 Spark 2.4.3
    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 2019-10-13
    • 2019-09-02
    • 2020-03-23
    • 2018-12-22
    • 2020-06-30
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多