简体   繁体   English

Apache 光束列表到 PCollection

[英]Apache beam list to PCollection

My input is a list of json and I want to have a multiple elements PCollection.我的输入是 json 的列表,我想要一个多元素 PCollection。 This is my code:这是我的代码:

def parse_json(data):
    import json
    for i in json.loads(data):
        return i
data = (p
    | "Read text" >> beam.io.textio.ReadFromText(f'gs://{bucket_name}/not_processed/2020-06-08T23:59:59.999Z__rms004_m1__not_sent_msg.txt')
    | "Parse json" >> beam.Map(parse_json))

The thing is I only get the first element of the list when the list is composed of 2 elements.问题是当列表由 2 个元素组成时,我只得到列表的第一个元素。

在此处输入图像描述

How do I achieve this?我如何实现这一目标?

I found out.我发现。

There is a function called ParDo in Apache Beam just for this.在 Apache Beam 中有一个名为 ParDo 的 function 就是为了这个。

def parse_json(data):
    import json
    return json.loads(data)

data = (p
    | "Read text" >> beam.io.textio.ReadFromText(f'gs://{bucket_name}/not_processed/2020-06-08T23:59:59.999Z__rms004_m1__not_sent_msg.txt')
    | "Parse json" >> beam.ParDo(parse_json))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM