RDD过滤器具有其他功能

时间:2018-03-25 04:01:01

标签: scala apache-spark

我知道如何过滤像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) ,但我尝试将过滤器放在多个位置,但它们不起作用。

1 个答案:

答案 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))