Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Raggruppa l'output in base alle colonne specificate. I record con valori simili nelle colonne di clustering vengono raggruppati nello stesso file. Il clustering migliora l'efficienza delle query consentendo alle query con predicati nelle colonne di clustering di ignorare i dati non necessari. A differenza del partizionamento, il clustering può essere usato in colonne a cardinalità elevata.
Sintassi
clusterBy(*cols)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
*cols |
str o list | Nomi delle colonne in base al cluster. |
Restituzioni
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()