簡體   English   中英

將Set轉換為Scala Spark中的單個對象

[英]Convert Set to individual objects in Scala Spark

我有一個RDD,其中數據的格式為(x,y),ExampleObject

因此,該類具有2個變量:

  1. 由x和y組成的元組(均為字符串)
  2. 類ExampleObject的exampleObject

ExampleObject類還包含2個屬性:

  1. SetObject1類類型的setObjects1
  2. SetObject2類類型的setObjects2

每個SetObject1類還包含2個屬性:

  1. SingleObject類類型的singleObject
  2. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM