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 |
|---|---|---|
| int | Le nombre de compartiments à enregistrer. |
| str, liste ou tuple | Un nom de colonne, ou une liste de noms. |
| str, facultatif | Noms de colonne supplémentaires. Doit être vide si |
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")