パーティション (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)]