python 键值形式の集による筛选のやり方

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 键值形式の集による筛选のやり方相关的知识,希望对你有一定的参考价值。

# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function

import argparse
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions


def run(argv=None):
    parser = argparse.ArgumentParser()
    _, pipeline_args = parser.parse_known_args(argv)
    pipeline = beam.Pipeline(options=PipelineOptions())

    base_list = [
        ("k001", "v001"),
        ("k001", "v002"),
        ("k001", "v003"),
        ("k002", "v011"),
        ("k002", "v012")
    ]

    filter_list = [
        ("k001", "v001"),
        ("k001", "v003"),
        ("k002", "v012")
    ]

    base = pipeline | "base" >> beam.Create(base_list)
    fil = pipeline | "filter" >> beam.Create(filter_list)

    group_coll = {"base": base, "filter": fil} | beam.CoGroupByKey()

    # 中身の確認
    group_coll | beam.Map(lambda (key, values): print(key, values))
    _ = """
    k001 {'filter': ['v001', 'v003'], 'base': ['v001', 'v002', 'v003']}
    k002 {'filter': ['v012'], 'base': ['v011', 'v012']}
    """

    # Filterのlambda変数に()をつけるとエラーになる
    (group_coll
     | beam.Map(lambda (key, values): (key, (values["base"] | beam.Filter(lambda b, f: b in f, values["filter"]))))
     | beam.Map(lambda (key, values): print(key, values))
     )
    _ = """
    k001 ['v001', 'v003']
    k002 ['v012']
    """

    result = pipeline.run()
    result.wait_until_finish()

if __name__ == '__main__':
    run()

以上是关于python 键值形式の集による筛选のやり方的主要内容,如果未能解决你的问题,请参考以下文章

python カンマ区切りの文字列を,别々の集にしたい时のサンプル

python KerasによるCNNの実装例

python Benchmarkeによるベンチマーク

python ビット演算による画像の合成

python シンボルによる数式の定义

python Kerasによる多层ニューラルネット