clusterBy (DataStreamWriter)

Hiermee wordt de uitvoer door de opgegeven kolommen geclusterd. Records met vergelijkbare waarden in de clusterkolommen worden gegroepeerd in hetzelfde bestand. Clustering verbetert de efficiƫntie van query's door query's met predicaten in de clusterkolommen toe te staan onnodige gegevens over te slaan. In tegenstelling tot partitionering kan clustering worden gebruikt voor kolommen met hoge kardinaliteit.

Syntaxis

clusterBy(*cols)

Parameterwaarden

Kenmerk Typ Beschrijving
*cols str of list Namen van de kolommen die moeten worden geclusterd op.

Retouren

DataStreamWriter

Examples

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

Cluster a Rate source stream by timestamp and write to Parquet:

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