clusterBy (DataStreamWriter)

Agrupa a saída pelas colunas dadas. Registos com valores semelhantes nas colunas de agrupamento são agrupados no mesmo ficheiro. A clusterização melhora a eficiência das consultas ao permitir que consultas com predicados nas colunas de agrupamento saltem dados desnecessários. Ao contrário da particionação, o agrupamento pode ser usado em colunas de alta cardinalidade.

Sintaxe

clusterBy(*cols)

Parâmetros

Parâmetro Tipo Descrição
*cols str ou lista Nomes das colunas a agrupar.

Devoluções

DataStreamWriter

Exemplos

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

Agrupe um fluxo fonte de taxa por carimbo temporal e escreva no 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()