clusterBy (DataStreamWriter)

Kluster output oleh kolom yang diberikan. Rekaman dengan nilai serupa pada kolom pengklusteran dikelompokkan bersama dalam file yang sama. Pengklusteran meningkatkan efisiensi kueri dengan mengizinkan kueri dengan predikat pada kolom pengklusteran untuk melewati data yang tidak perlu. Tidak seperti partisi, pengklusteran dapat digunakan pada kolom kardinalitas tinggi.

Sintaksis

clusterBy(*cols)

Parameter-parameternya

Parameter Tipe Deskripsi
*cols str atau daftar Nama kolom yang akan diklusterkan.

Pengembalian Barang

DataStreamWriter

Examples

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

Kluster aliran sumber Laju berdasarkan tanda waktu dan tulis ke 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()