Aller au contenu principal

clusterBy (DataStreamWriter)

Regroupe la sortie par les colonnes spécifié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 superflues. Contrairement au partitionnement, le clustering peut être utilisé sur des colonnes à cardinalité élevée.

Syntaxe

clusterBy(*cols)

parameter

parameter

Type

Description

*cols

str ou list

Noms des colonnes à regrouper.

parameter

Type

Description

*cols

str ou list

Noms des colonnes à regrouper.

Renvoie

DataStreamWriter

Exemples

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

Regrouper un Stream source de débit par timestamp et écrire dans Parquet :

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