bucketBy

Compartimente la sortie par les colonnes données. Si elle est spécifiée, la sortie est disposée sur le système de fichiers similaire au schéma de compartimentage de Hive, mais avec une autre fonction de hachage de compartiment et n’est pas compatible avec le compartimentage de Hive.

Syntaxe

bucketBy(numBuckets, col, *cols)

Paramètres

Paramètre Type Description
numBuckets int Nombre de compartiments à enregistrer.
col str, list ou tuple Nom d’une colonne ou liste de noms.
*cols str, facultatif Noms de colonnes supplémentaires. Doit être vide s’il col s’agit d’une liste.

Retours

DataFrameWriter

Remarques

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 lisez-le.

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