このデータ ソースのパーティションのシーケンスを返します。
パーティションは、データ読み取り操作を並列タスクに分割するために使用されます。 このメソッドが 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)]