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

you*_*ati 9 hive apache-spark parquet apache-spark-2.0

我正在尝试将数据框保存在表配置单元中。

在 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)
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*rov 10

我刚刚尝试在收到错误后使用.format("hive")tosaveAsTable并且它起作用了。

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