Freigeben über


bucketBy

Buckets the output by the given columns. Wenn angegeben, wird die Ausgabe auf dem Dateisystem ähnlich dem Bucketingschema von Hive, aber mit einer anderen Buckethashfunktion angeordnet und ist nicht mit dem Bucketing von Hive kompatibel.

Syntax

bucketBy(numBuckets, col, *cols)

Parameter

Parameter Typ Beschreibung
numBuckets int Die Anzahl der zu speichernden Buckets.
col str, list, or tuple Ein Spaltenname oder eine Liste von Namen.
*cols str, optional Zusätzliche Spaltennamen. Muss leer sein, wenn col es sich um eine Liste handelt.

Rückkehr

DataFrameWriter

Hinweise

Gilt für dateibasierte Datenquellen in Kombination mit DataFrameWriter.saveAsTable.

Beispiele

Schreiben Sie einen DataFrame in eine zusammengefasste Tabelle, und lesen Sie ihn zurück.

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