Pular para o conteúdo principal

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

*cols

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