Scala Spark 1.6:将数据帧保存到配置单元时出现异常
我有一个从配置单元表加载的数据帧。添加一些数据后,我想将其写回配置单元,但出现以下异常:Scala Spark 1.6:将数据帧保存到配置单元时出现异常,scala,apache-spark,hive,Scala,Apache Spark,Hive,我有一个从配置单元表加载的数据帧。添加一些数据后,我想将其写回配置单元,但出现以下异常: Exception in thread "main" java.lang.RuntimeException: [1.5] failure: ``.'' expected but `:' found 下面是我代码的一部分: var _resultsDF: DataFrame = _hiveContext.read.format("orc").load (_masterHDFS + "/apps/hive/w
Exception in thread "main" java.lang.RuntimeException: [1.5] failure: ``.'' expected but `:' found
下面是我代码的一部分:
var _resultsDF: DataFrame = _hiveContext.read.format("orc").load (_masterHDFS + "/apps/hive/warehouse/mytable");
def getValueList(): List[Any] = {
List(
"entry field1"
"entry field2"
)
}
def addRow(): Unit = {
val rdd = _sparkContext.parallelize (Seq (getValueList()))
val rowRdd = rdd.map (value => Row ((value: _*)))
val rowDF = _sqlContext.createDataFrame (rowRdd, _resultsDF.schema)
// put DataFrame to results
_resultsDF = _resultsDF.unionAll (rowDF)
_resultsDF.write.format("orc").saveAsTable (_masterHDFS + "/apps/hive/warehouse/mytable")
// => Exception in thread "main" java.lang.RuntimeException: [1.5] failure: ``.'' expected but `:' found
}
saveAsTable似乎只允许将表标识符作为参数,因此必须为基本uri设置选项。这对我很有用:
var options: Map[String, String] = Map()
options += ("path" -> (_masterHDFS + "/apps/hive/warehouse/"))
_resultsDF.write.format("orc").mode(SaveMode.Append).options(options).saveAsTable("mytable")
或者只使用save而不是saveAsTable
_resultsDF.write.format("orc").mode(SaveMode.Append).save(_masterHDFS + "/apps/hive/warehouse/mytable")
我不太清楚。但是,请尝试更改正在写入和读取的表的名称。因为名为“mytable”的表已经存在,您以前读过,现在又用相同的名称编写。您是否尝试使用
SaveMode.Append
,删除并集并只保存新的rowDF
记录rowDF.write.format(“orc”).mode(SaveMode.Append).saveAsTable(…)
。您是否验证了这两个模式(mytable和“string”)是相同的?