【发布时间】:2016-01-04 08:33:42
【问题描述】:
我已在数据框中加载我的一个表并尝试将其保存为配置单元表
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: 找不到字段 mytable 从 [public java.util.ArrayList org.apache.hadoop.hive.serde2.ColumnSet.col]
【问题讨论】:
-
您的表中是否有任何名称为“mytable”的字段?而这个字段的数据类型是什么?
-
您使用的是哪个版本的 spark?
-
@Sumit: 没有名为 myTable 的列,我在 saveAsTable("test.myTable") 中给出了 test 是我的数据库名称,我尝试使用 SaveMode.Ignore 和 SaveMode.ErrorIfExits 它正在创建但正在创建在默认数据库中,火花版本 1.4.1
-
在 IgnoreMode 中保存时表示表已经退出,但我无法在配置单元表列表中查看............将任务 'attempt_201601040502_0000_m_000000_0' 的输出保存到 hdfs:// hadoop1.domain.com:8020/apps/hive/warehouse/test.db/mytable/_temporary/0/task_201601040502_0000_m_000000
-
我不太确定在使用 Hive 上下文时是否可以提供数据库名称。 1.5 中存在一个错误,在 1.6 中已解决。你能用 1.6 试试看是否有效
标签: scala apache-spark hive hiveql spark-dataframe