Spark2无法将数据框写入镶木地板蜂巢表:HiveFileFormat`。它与指定的格式“ParquetFileFormat”不匹配

问题描述 投票:0回答:1

我正在尝试在table hive中保存数据帧。

在Spark 1.6中它可以工作但是在迁移到2.2.0之后它不再起作用了。

这是代码:

blocs
      .toDF()
      .repartition($"col1", $"col2", $"col3", $"col4")
      .write
      .format("parquet")
      .mode(saveMode)
      .partitionBy("col1", "col2", "col3", "col4")
      .saveAsTable("db".tbl)

现有表project_bsc_dhr.bloc_views的格式是HiveFileFormat。它与指定的格式ParquetFileFormat不匹配。 org.apache.spark.sql.AnalysisException:现有表project_bsc_dhr.bloc_views的格式为HiveFileFormat。它与指定的格式ParquetFileFormat不匹配。

apache-spark hive parquet apache-spark-2.0
1个回答
2
投票

我刚刚在收到错误后尝试使用.format("hive")saveAsTable并且它有效。

我也不建议使用作者建议的insertInto,因为它看起来不是类型安全的(尽管这个术语可以应用于SQL API)并且在忽略列名和使用位置库的方式上容易出错解析度。

© www.soinside.com 2019 - 2024. All rights reserved.