복붙노트

[SCALA] 어떻게 요소의 액세스 스파크 RDD 배열에 인덱스를 기반으로

SCALA

어떻게 요소의 액세스 스파크 RDD 배열에 인덱스를 기반으로

각 튜플 요소로 취급 할 수 I는 다음과 같은 요소들의 어레이와 RDD 있고, 지금 상담자이 RDD 통해 액세스 만 넷째 처음 두 행 튜플 요소 .. 루프로 할 것이다

Array[(Int, String, String, Int)] = Array(
    (1,Tom,AAA,2000), (2,Tim,AAA,3000),
    (3,Mark,BBB,6000), (4,Jim,BBB,6000), (5,James,CCC,4000))

내가 먼저 테이크 tuple1 4 요소 (2000)와 tuple2 4 요소 (3000)를 원하는 어떤 조건을 실행 한 다음 동일하지만 지금은 RDD를 통해 튜플 2 튜플 3..basically의 루프를 할 ..

나는 스칼라에 문 루프와 경우에 쓸 수 있지만 매개 변수를 허용하지 않는 RDD 이후 RDD 위에 그것을 할 사람을 이해하지 않습니다.

감사는 어떤 도움을 주셔서 감사합니다. 그래서 여전히 학습을 촉발하는 새로운입니다.

해결법

  1. ==============================

    1.대답은하지 않습니다 단순히. RDDs 인덱싱되지 않고, 값의 문맥 순서에 따라서 비 결정적 일 수있다.

    대답은하지 않습니다 단순히. RDDs 인덱싱되지 않고, 값의 문맥 순서에 따라서 비 결정적 일 수있다.

    지금까지 내가 당신이 원하는 것은 단순히지도와 슬라이딩 윈도우 이해로 :

    import org.apache.spark.mllib.rdd.RDDFunctions._
    
    // A dummy function
    def doSomething(xs: Array[Int]) = xs match {
      case Array(x1, x2) => if (x1 <= x2) x1 else x2
    }
    
    val rdd = sc.parallelize(Array(
        (1, "Tom", "AAA", 2000),
        (2, "Tim", "AAA", 3000),
        (3, "Mark", "BBB", 6000),
        (4, "Jim", "BBB", 6000),
        (5, "James", "CCC", 4000)))
    
    rdd.map(_._4).sliding(2).map(doSomething)
    

    물론 위의 값의 순서가 정의되어 있다고 가정 또는 다른 말로 조상 계보 단행 RDDs 포함되지 않습니다.

  2. from https://stackoverflow.com/questions/33598541/how-to-access-spark-rdd-array-of-elements-based-on-index by cc-by-sa and MIT license