[英]Convert Set to individual objects in Scala Spark
我有一個RDD,其中數據的格式為(x,y),ExampleObject
因此,該類具有2個變量:
- 由x和y組成的元組(均為字符串)
- 類ExampleObject的exampleObject
ExampleObject類還包含2個屬性:
- SetObject1類類型的setObjects1
- SetObject2類類型的setObjects2
每個SetObject1類還包含2個屬性:
- SingleObject類類型的singleObject
- SetObject3類類型的setObjects3
您可以假定所有屬性都有與其關聯的getter。 我想將singleObject對象映射到另一個類SingleTransformedObject。
現在,我要做的是讀取此RDD並獲取包含SingleTransformedObject列表數據的映射RDD。 我怎樣才能做到這一點? 初始階段的一些代碼是這樣的:
val filteredRDD = inputRDD.filter { case ((x, _), _) => x == "2321"}
.map {case (key, exampleObject) =>
exampleObject.getSetObjects1}
現在,在此之后,我不確定如何將對象集划分為單個對象,並在每個對象上應用轉換。
你能舉個例子嗎?
由於exampleObject.getSetObjects1
似乎返回一個Set
(或其他Collection
),因此map
將導致RDD<Set<SetObjects1>>
。 基於這個問題,我想您正在尋找RDD<SetObjects1>
。 在這種情況下,您需要flatMap
而不是map
。
val filteredRDD = inputRDD
.filter { case ((x, _), _) => x == "2321" }
.flatMap { case (key, exampleObject) => exampleObject.getSetObjects1 }
.map { // code here to convert SetObject to SingleTransformedObject }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.