我知道如何过滤像Row
这样的RDD,但我不知道如何将过滤器与val rst = rdd.map(ab => Row(ab.a, ab.b))
等其他功能结合使用。
在ab.b > 0
中,我想过滤掉from music21 import *
piano_parts = []
score = converter.parse('path/to/midi')
instr = instrument.Piano
for part in instrument.partitionByInstrument(score):
if isinstance(part.getInstrument(), instr):
piano_parts.append(part)
,但我尝试将过滤器放在多个位置,但它们不起作用。
答案 0 :(得分:1)
我不确定" out"参与"过滤掉":你想保留这些条目,还是想要摆脱它们?如果您想删除所有带有ab.b > 0
的条目,那么您需要
val rst = rdd.filterNot(_.b > 0).map(ab => Row(ab.a, ab.b))
如果您只想保留 ab.b > 0
条目,请尝试
val rst = rdd.filter(_.b > 0).map(ab => Row(ab.a, ab.b))
下划线_
只是
val rst = rdd.filter(ab => ab.b > 0).map(ab => Row(ab.a, ab.b))