Bucketby属性与Spark saveastable方法采用spark'default'数据库而不是hive数据库。HDP 3.0

问题描述 投票:0回答:1

我使用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
apache-spark apache-spark-sql hdp
1个回答
0
投票

你可以尝试添加这个参数。

.option("dbtable", "schema.tablename")

0
投票

df.write.mode...saveAsTable("database.table") 应该可以做到这一点。

只是bucketBy格式不能通过Hive、Hue、Impala读取。目前不支持。

不知道你说的spark db是什么意思,我想你是指Spark metastore吧?

© www.soinside.com 2019 - 2024. All rights reserved.