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

パーティション (DataSourceReader)

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

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

このメソッドは、クエリプランニング中に一度だけ呼び出されます。デフォルトでは、値Noneを持つ単一のパーティションが返されます。サブクラスはこのメソッドをオーバーライドして、複数のパーティションを返すことができます。

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

構文

partitions()

戻り値

Sequence[InputPartition]

このデータソースのパーティションのシーケンス。各パーティション値は、 InputPartitionのインスタンス、またはそのサブクラスでなければなりません。

注意

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

整数のリストを返します。

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

文字列のリストを返します。

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

範囲のリストを返します。

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

def partitions(self):
return [RangeInputPartition(1, 3), RangeInputPartition(5, 10)]
このページの見出し