Compartilhar via


bucketBy

Buckets a saída pelas colunas fornecidas. Se especificado, a saída será colocada no sistema de arquivos semelhante ao esquema de bucketing do Hive, mas com uma função de hash de bucket diferente e não é compatível com o bucketing do Hive.

Sintaxe

bucketBy(numBuckets, col, *cols)

Parâmetros

Parâmetro Tipo Descrição
numBuckets INT O número de buckets a serem salvos.
col str, lista ou tupla Um nome de coluna ou uma lista de nomes.
*cols str, opcional Nomes de coluna adicionais. Deve estar vazio se col for uma lista.

Devoluções

DataFrameWriter

Observações

Aplicável a fontes de dados baseadas em arquivo em combinação com DataFrameWriter.saveAsTable.

Exemplos

Escreva um DataFrame em uma tabela bucketed e leia-o novamente.

spark.sql("DROP TABLE IF EXISTS bucketed_table")
spark.createDataFrame([
    (100, "Alice"), (120, "Alice"), (140, "Bob")],
    schema=["age", "name"]
).write.bucketBy(2, "name").mode("overwrite").saveAsTable("bucketed_table")

spark.read.table("bucketed_table").sort("age").show()
# +---+------------+
# |age|        name|
# +---+------------+
# |100|Alice|
# |120|Alice|
# |140| Bob|
# +---+------------+

spark.sql("DROP TABLE bucketed_table")