Aller au contenu principal

bucketBy

Compartimente la sortie par les colonnes données. Si spécifié, la sortie est agencée sur le système de fichiers de manière similaire au schéma de compartimentation de Hive, mais avec une fonction de hachage de compartiment différente et n'est pas compatible avec la compartimentation de Hive.

Syntaxe

bucketBy(numBuckets, col, *cols)

parameter

parameter

Type

Description

numBuckets

int

Le nombre de compartiments à enregistrer.

col

str, liste ou tuple

Un nom de colonne, ou une liste de noms.

*cols

str, facultatif

Noms de colonne supplémentaires. Doit être vide si col est une liste.

parameter

Type

Description

numBuckets

int

Le nombre de compartiments à enregistrer.

col

str, liste ou tuple

Un nom de colonne, ou une liste de noms.

*cols

str, facultatif

Noms de colonne supplémentaires. Doit être vide si col est une liste.

Renvoie

DataFrameWriter

Notes

Applicable aux sources de données basées sur des fichiers en combinaison avec DataFrameWriter.saveAsTable.

Exemples

Écrivez un DataFrame dans une table compartimentée, et relisez-le.

Python
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")