PTable

PTable 定义

class bigflow.ptable.PTable(value, **options)

基类:bigflow.ptype.PType

用于表示具有分布式Key-Value映射关系的 bigflow.ptype.PType

Constructor .. note:: 用户不应当直接使用其构造方法

参数:value (PType) -- PTable的Value

Methods:

apply_key_values(transform, *side_inputs, **options)

将Key和Value做一个变换

参数:
  • transform (function) -- 变换函数
  • *side_inputs -- 参与计算的SideInputs
  • **options -- 可配置选项
返回:

变换结果

返回类型:

PTable

>> nums = _pipeline.parallelize([1, 2, 3, 4, 5, 6, 7])
>> grouped = nums.group_by(lambda n: n % 2)
>> def in_every_group(key, value):
..     key = key.map(lambda k: 2 if k == 1 else 3)
..     return value.take(key)
>> grouped.apply_key_values(in_every_group).get()
{0: [2, 4, 6], 1: [1, 3]}
apply_values(transform, *args, **options)

对Value进行一个变换

参数:
  • transform (callable) -- 作用在Value上的变换函数
  • *args (object) -- 变换所需要的参数列表
  • **options -- 可配置选项
返回:

变换结果

返回类型:

PTable

>> nums = _pipeline.parallelize([1, 2, 3])
>> grouped = nums.group_by(lambda n: n % 2)
>> grouped.apply_values(transforms.sum).get()
{0: [2], 1: [4]}
extract_keys(**options)

提取给定PTable中所有的key,等价于 transforms.extract_keys(self, options) :param **options: 可配置选项

返回:所有的key,以PCollection给出
返回类型:PCollection
extract_values(**options)

提取给定PTable中所有的value,等价于 transforms.extract_values(self, options)

参数:**options -- 可配置选项
返回:所有的value,以PCollection给出
返回类型:PCollection
flatten(**option)

对于每个Key和Value中的每个元素(value 1, value 2, ... value m),构造(Key, value 1), (Key, value 2), ... (Key, value m),结果使用PCollection表示

返回:表示结果的PCollection
返回类型:PCollection
flatten_values()

使用Value中的每个元素(value 1, value 2, ... value m),构造PCollection,等价于 self.extract_values()

返回:包含所有Value的PCollection
返回类型:PCollection
inner_most_type()

返回其最内部Value的类型

返回:最内部Value类型,PCollection或PObject
返回类型:class
>>> _pipeline.parallelize({"A": 1}).inner_most_type()
>>> bigflow.pcollection.PCollection
key_serdes()

返回Key的序列化/反序列化器

nested_level()

返回该PTable的嵌套层级,即其Value中包含几个PTable

返回:嵌套层级
返回类型:int
>>> _pipeline.parallelize({"A": 1}).nested_level()
>>> 0
>>> _pipeline.parallelize({"A": "a": 1}).nested_level()
>>> 1
node()

返回PTable所对应的Node

返回:node
返回类型:LogicalPlan.Node
Raises:BigflowPlanningException -- 若无法得到Node

注解

用户不应当使用此方法