clusterBy (DataStreamWriter)

Clusters la sortie par les colonnes données. Les enregistrements avec des valeurs similaires sur les colonnes de clustering sont regroupés dans le même fichier. Le clustering améliore l’efficacité des requêtes en permettant aux requêtes avec des prédicats sur les colonnes de clustering d’ignorer les données inutiles. Contrairement au partitionnement, le clustering peut être utilisé sur des colonnes à cardinalité élevée.

Syntaxe

clusterBy(*cols)

Paramètres

Paramètre Type Description
*cols str ou list Noms des colonnes à cluster par.

Retours

DataStreamWriter

Exemples

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

Clusterez un flux source rate par horodatage et écrivez dans 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()