Python apache beam 从数据集中删除元素

Python apache beam remove elements from data set

虽然我有一个包含键和几个元素的数据集(a.k。值?):

['7 juni', '215', '196', '219', '228', '200', '234', '212']
['8 juni', '228', '236', '215', '229', '214', '231', '224']

我只想使用第一个和最后一个元素,但我想将它们保留为元素而不是字符串。
"| beam.Map(lambda item: item[0] + ' ,' + str(item[7]))" 生成字符串:

7 juni ,212
8 juni ,224

我要元素

['7 juni', '212']
['8 juni', '224']

这可以使用 python 光束变换吗?

我不确定光束是什么,但这是一个非常简单的问题。 运行 这个(我认为类似于你的申请):

groups = [['a',1,2,3],['b',4,5,6,7]]
results = []

for group in groups:
    key = group[0]
    for val in group[1:]:
        results.append([key,val])

print(results)

结果[['a',1], ['a'.2], ['a',3], ['b',4], ['b',5], ['b',6], ['b',7]]

或者,如果您只想保留最后一个元素,您可以编写

pcoll = ...
results = pcoll | beam.Map(lambda input: [input[0], input[-1]])

如果 pcoll 是

['7 juni', '215', '196', '219', '228', '200', '234', '212']
['8 juni', '228', '236', '215', '229', '214', '231', '224']
...

会生成一个

的 PCollection
['7 juni', '212']
['8 juni', '224']
...