返回此数据源的分区序列。
分区用于将数据读取操作拆分为并行任务。 如果此方法返回 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)]