partitions (DataSourceReader)

このデータ ソースのパーティションのシーケンスを返します。

パーティションは、データ読み取り操作を並列タスクに分割するために使用されます。 このメソッドが N 個のパーティションを返す場合、クエリ プランナーは N 個のタスクを作成します。 各タスクは、それぞれのパーティション値を使用してデータを読み取り、 read() を並列で実行します。

このメソッドは、クエリの計画中に 1 回呼び出されます。 既定では、 None値を持つ 1 つのパーティションが返されます。 サブクラスは、このメソッドをオーバーライドして複数のパーティションを返すことができます。

大規模なデータセットを読み取るときにパフォーマンスを向上させるには、このメソッドをオーバーライドすることをお勧めします。

構文

partitions()

返品

Sequence[InputPartition]

このデータ ソースのパーティションのシーケンス。 各パーティション値は、 InputPartition のインスタンスまたはサブクラスである必要があります。

メモ

すべてのパーティション値は、選択可能なオブジェクトである必要があります。

例示

整数の一覧を返します。

def partitions(self):
    return [InputPartition(1), InputPartition(2), InputPartition(3)]

文字列の一覧を返します。

def partitions(self):
    return [InputPartition("a"), InputPartition("b"), InputPartition("c")]

範囲の一覧を返します。

class RangeInputPartition(InputPartition):
    def __init__(self, start, end):
        self.start = start
        self.end = end

def partitions(self):
    return [RangeInputPartition(1, 3), RangeInputPartition(5, 10)]