clusterBy (DataStreamWriter)
Agrupa a saída pelas colunas fornecidas. Registros com valores semelhantes nas colunas clustering são agrupados no mesmo arquivo. O agrupamento melhora a eficiência das consultas, permitindo que consultas com predicados nas colunas clustering ignorem dados desnecessários. Ao contrário do particionamento, clustering pode ser usado em colunas de alta cardinalidade.
Sintaxe
clusterBy(*cols)
Parâmetros
Parâmetro | Tipo | Descrição |
|---|---|---|
| string ou lista | Nomes das colunas pelas quais cluster . |
Devoluções
DataStreamWriter
Exemplos
Python
df = spark.readStream.format("rate").load()
df.writeStream.clusterBy("value")
# <...streaming.readwriter.DataStreamWriter object ...>
Agrupar uma transmissão de origem de taxa por carimbo de data/hora e escrever em 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()