Condividi tramite


bucketBy

Raggruppa l'output in base alle colonne specificate. Se specificato, l'output viene disposto nel file system simile allo schema di bucket di Hive, ma con una funzione hash del bucket diversa e non è compatibile con il bucket di Hive.

Sintassi

bucketBy(numBuckets, col, *cols)

Parametri

Parametro Tipo Descrizione
numBuckets int Numero di bucket da salvare.
col str, list o tupla Nome di colonna o elenco di nomi.
*cols str, facoltativo Nomi di colonna aggiuntivi. Deve essere vuoto se col è un elenco.

Restituzioni

DataFrameWriter

Note

Applicabile per le origini dati basate su file in combinazione con DataFrameWriter.saveAsTable.

Examples

Scrivere un dataframe in una tabella in bucket e leggerlo di nuovo.

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