Свойство Bucketby с сохраняемым методом Spark, использующим базу данных Spark по умолчанию вместо базы данных куста: HDP 3.0 - PullRequest
0 голосов
/ 26 мая 2020

Я сохраняю Spark DataFrame с помощью метода saveAsTable и пишу код ниже.

    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 'default' вместо базы данных кустов.

может кто-нибудь предложить мне, почему bucketby (5, bucketted_column) не работает с saveAsTable.

    Note: Framework: HDP 3.0
    Spark : 2.1

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

df.write.mode...saveAsTable("database.table") должно помочь.

За исключением того, что формат bucketBy не может быть прочитан через Hive, Hue, Impala. В настоящее время не поддерживается.

Не уверен, что вы имеете в виду под Spark db, я думаю, вы имеете в виду Spark metastore?

0 голосов
/ 26 мая 2020

Можно попробовать добавить этот параметр:

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