簡體   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