0
在另一個RDD的基礎上,是否有一種方法可以在一個RDD中篩選元素,即使它們不共享相同的密鑰?在另一個RDD的基礎上修剪一個RDD
我有兩個RDDS - ABC和XYZ
abc.collect()看起來像這樣
[[a,b,c],[a,c,g,e],[a,e,b,x],[b,c]]
xyz.collect()看起來像這樣
[a,b,c]
現在我想濾除RDD abc中所有不在xyz中的元素。
上述操作後,RDD美國廣播公司應該是這樣的:
[[a,b,c],[a,c],[a,b],[b,c]]
我寫的,看起來像這樣的代碼:
然而,這給了我這個錯誤:
Exception: It appears that you are attempting to broadcast an RDD or reference an RDD from an action or transformation. RDD transformations and actions can only be invoked by the driver, not inside of other transformations; for example, rdd1.map(lambda x: rdd2.values.count() * x) is invalid because the values transformation and count action cannot be performed inside of the rdd1.map transformation
我已經嘗試過濾器,查找而不是地圖無濟於事。我不斷收到相同的錯誤。
我知道我可以對xyz執行收集操作並解決此錯誤,但是我在大型數據集上運行此操作,並且執行.collect()會導致我的AWS服務器超出太多內存。因此,我需要在不使用.collect()或任何此類等效的昂貴操作的情況下執行此操作。
我試過這個,但最後出現了一個難以置信的類型列表錯誤 – Piyush
試了一遍。這一次一步一步,它的工作。不知道爲什麼它第一次沒有工作。感謝LostinOverflow – Piyush