我使用saveAsTable方法保存Spark DataFrame,并写了下面的代码,它工作得很好,我能够看到hive表中的数据。
val options = Map("path" -> hiveTablePath)
df.write.format("orc")
.partitionBy("partitioncolumn")
.options(options)
.mode(SaveMode.Append)
.saveAsTable(hiveTable)
但当我使用多一个属性bucketby(5,bucketted_column)
df.write.format("orc")
.partitionBy("partitioncolumn")
.bucketby(5,bucketted_column)
.options(options)
.mode(SaveMode.Append)
.saveAsTable(hiveTable)
它试图将其保存在spark "默认 "数据库,而不是hive数据库。
谁能告诉我为什么bucketby(5,bucketted_column)不能用saveAsTable保存。
Note: Framework: HDP 3.0
Spark : 2.1
你可以尝试添加这个参数。
.option("dbtable", "schema.tablename")
df.write.mode...saveAsTable("database.table")
应该可以做到这一点。
只是bucketBy格式不能通过Hive、Hue、Impala读取。目前不支持。
不知道你说的spark db是什么意思,我想你是指Spark metastore吧?