키/값 RDD가 있습니다. 키/값의 엔티티를 "반복 실행"하고 키/값을 만들고 다른 것으로 작성 또는 매핑하려고합니다. 첫 번째 RDD보다 더 많거나 적은 항목을 가질 수있는 RDD.Spark RDD를 사용하여 다른 RDD를 생성하거나 매핑하는 방법
예 :
나는 그림에서 색상의 관찰을 대표 accumulo의 기록을 가지고있다. 관찰 개체/개체는 그림의 그림 이름과 색에 대한 데이터를 보유합니다.
Observation
public String getPaintingName() {return paintingName;}
public List<String> getObservedColors() {return colorList}
관측치를 누적 (accumulo)에서 내 코드로 RDD로 가져옵니다.
val observationRDD: RDD[(Text, Observation)] = getObservationsFromAccumulo();
나는이 RDD을 가지고 키가 색이 관찰 값이 색상에서 관찰 된 그림의 이름입니다 (컬러, paintingName)의 형태의 RDD을 만들려고합니다.
val colorToPaintingRDD: RDD[(String, String)] = observationRDD.somefunction({ case (_, observation) =>
for(String color : observations.getObservedColors()) {
// Some how output a entry into a new RDD
//output/map (color, observation.getPaintingName)
})
지도가 작동하지 않는다는 것을 알고 있습니다. 1 대 1 일 수도 있는데, 아마도 observationRDD.flatmap (일부 기능)이라고 생각했기 때문에 새로운, 더 크거나 더 작게 만드는 방법에 대한 예제를 찾을 수없는 것처럼 보입니다. , RDD.
flatmap이 정확한지 누군가가 나를 도와 주겠습니까? 그렇다면 제공 한이 예를 사용하여 예제를 제공 하시겠습니까? 아니면 기본이 아니라면 알려주시겠습니까?
이것은 간단한 예제 일 뿐이며, 내용에 대해 묻지 않고, RDD를 RDD로 변환하는 방법을 이해해야합니다.
이것은 정확히 내가 필요한 것입니다. 감사합니다! – JediKid