分区 (DataSourceReader)

返回此数据源的分区序列。

分区用于将数据读取操作拆分为并行任务。 如果此方法返回 N 个分区,则查询规划器将创建 N 个任务。 每个任务将并行执行 read() ,使用相应的分区值读取数据。

此方法在查询规划过程中调用一次。 默认情况下,它返回一个具有该值 None的分区。 子类可以重写此方法以返回多个分区。

建议在读取大型数据集时重写此方法以提高性能。

Syntax

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)]