メインコンテンツまでスキップ

clusterBy (DataStreamWriter)

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

構文

clusterBy(*cols)

パラメーター

パラメーター

Type

説明

*cols

文字列またはリスト

クラスター化する列の名前。

戻り値

DataStreamWriter

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

タイムスタンプによってソース ストリームをクラスター化し、 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()
このページの見出し