繁体   English   中英

在Spark- Python中子集RDD

[英]Subsetting RDDs in Spark- Python

我有一个LabledPoints RDD 是否可以根据索引列表选择子集?

例如,对于idx=[0,4,5,6,8] ,我希望能够使用元素0、4、5、6和8获得新的RDD。

请注意,我对可用的随机样本不感兴趣。

是的,您可以:

  1. 通过一组值来键控您的RDD,将这些值放入另一个RDD中,然后执行leftOuterJoin合并它们,仅将其保留在该组中。
  2. 将所有值放入广播变量 (作为一个简单集合),以便在执行程序之间共享它,运行过滤器操作以验证这些点是否存在于集合中。

如果值列表很大,请选择1,否则选择2。


编辑以显示案例1的代码示例。

val filteringValues = //read the list of values, same as you do your points, just easier 
            .keyBy(_)

val filtered = parsedData
            .keyBy(_.something) // Get the number from your inner structure
            .rigthOuterJoin(filteringValues) // This select only from your subset
            .flatMap(x => x._2._1) // Map it back to the original type.

暂无
暂无

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

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