clusterBy (DataStreamWriter)

指定された列で出力をクラスター化します。 クラスタリング列の値が類似したレコードは、同じファイルにグループ化されます。 クラスタリングでは、クラスタリング列の述語を使用するクエリで不要なデータをスキップできるため、クエリの効率が向上します。 パーティション分割とは異なり、高カーディナリティの列ではクラスタリングを使用できます。

構文

clusterBy(*cols)

パラメーター

パラメーター タイプ 説明
*cols str または list クラスター化する列の名前。

返品

DataStreamWriter

例示

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

タイムスタンプを使用してレート ソース ストリームをクラスター化し、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()