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

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

    对Value进行一个变换

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

    变换结果

    返回类型:

    PTable

    1. >> nums = _pipeline.parallelize([1, 2, 3])
    2. >> grouped = nums.group_by(lambda n: n % 2)
    3. >> grouped.apply_values(transforms.sum).get()
    4. {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
    1. >>> _pipeline.parallelize({"A": 1}).inner_most_type()
    2. >>> bigflow.pcollection.PCollection
  • key_serdes()

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

  • nested_level()

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

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

    返回PTable所对应的Node

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

    注解

    用户不应当使用此方法