clusterBy (DataStreamWriter)

Gruppiert die Ausgabe der angegebenen Spalten. Datensätze mit ähnlichen Werten in den Clusterspalten werden in derselben Datei gruppiert. Das Clustering verbessert die Abfrageeffizienz, indem Abfragen mit Prädikaten für die Clusterspalten nicht benötigte Daten übersprungen werden können. Im Gegensatz zur Partitionierung können Clustering für Spalten mit hoher Kardinalität verwendet werden.

Syntax

clusterBy(*cols)

Parameter

Parameter Typ Beschreibung
*cols str oder list Namen der Spalten, nach der gruppiert werden soll.

Rückkehr

DataStreamWriter

Beispiele

df = spark.readStream.format("rate").load()
df.writeStream.clusterBy("value")
# <...streaming.readwriter.DataStreamWriter object ...>

Clustern eines Rate-Quelldatenstroms nach Zeitstempel und Schreiben in Parkett:

import tempfile
import time
with tempfile.TemporaryDirectory(prefix="clusterBy1") as d:
    with tempfile.TemporaryDirectory(prefix="clusterBy2") as cp:
        df = spark.readStream.format("rate").option("rowsPerSecond", 10).load()
        q = df.writeStream.clusterBy(
            "timestamp").format("parquet").option("checkpointLocation", cp).start(d)
        time.sleep(5)
        q.stop()
        spark.read.schema(df.schema).parquet(d).show()