无法将数据帧保存为引发serde异常的spark的hive表

时间:2016-01-04 08:33:43

标签: scala apache-spark hive hiveql spark-dataframe

我已经在dataframe中加载了一个表,并尝试将其保存为hive表

var RddTableName= objHiveContext.sql("select * from tableName")
val dataframeTable = RddTableName.toDF()
dataframeTable.write.format("orc").mode(SaveMode.Overwrite).saveAsTable("test.myTable")

我遇到了异常 org.apache.hadoop.hive.ql.metadata.HiveException:java.lang.RuntimeException:无法从[public java.util.ArrayList org.apache.hadoop.hive.serde2.ColumnSet.col]中找到字段mytable

2 个答案:

答案 0 :(得分:0)

上面的异常正在发生,因为我试图覆盖现在查找现有表“myTable”(并且它不在那里),所以要创建一个新表,我们必须去saveMode.Ignore或ErrorIfExists。您可以通过映射其路径

来选择选项中的数据库名称

答案 1 :(得分:0)

首先设置hcontext.sql(“使用数据库”)  你不能把数据库放在saveAsTable