복붙노트

[SCALA] 아파치 스파크 : java.lang.NoSuchMethodError .rddToPairRDDFunctions

SCALA

아파치 스파크 : java.lang.NoSuchMethodError .rddToPairRDDFunctions

SBT 패키지는 잘 실행되지만 후 나는 오류가 발생 스파크 제출

여기서 문제가되는 라인이다 :

val sigCounts = rowData.map(row => (row("Signature"), 1)).countByKey()

rowData 하행는 RDD지도 [문자열, 문자열]입니다. "서명"키는지도에있는 모든 항목에 존재합니다.

나는이 빌드 문제가 될 수있다 생각한다. 다음은 내 SBT 파일은 다음과 같습니다

name := "Example1"
version := "0.1"
scalaVersion := "2.11.8"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.0"
scalacOptions ++= Seq("-feature")

그래서 어쩌면 수입은 올바른 스칼라 새로운 것이 아니다거야? 나는 가지고있다:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import scala.io.Source

해결법

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

    1.java.lang.NoSuchMethodError는 코드에 대해 컴파일 된 버전이 실행시에 사용되는 라이브러리보다 높은 버전에 있는지 종종 나타냅니다.

    java.lang.NoSuchMethodError는 코드에 대해 컴파일 된 버전이 실행시에 사용되는 라이브러리보다 높은 버전에 있는지 종종 나타냅니다.

    스파크로 컴파일하는 데 사용되는 불꽃 버전 (기계 또는 클러스터) 배포와는 다른 그 수단이다.

    개발 및 런타임의 버전을 정렬하면이 문제를 해결해야한다.

  2. ==============================

    2.dataframe로 간단한 oneline JSON 파일을 읽고 .show () 메소드를 사용하여 표시하는 동안 I 동일한 문제에 직면 하였다. 나는 코드의 myDF.show () 라인이 오류를 얻을 것입니다.

    dataframe로 간단한 oneline JSON 파일을 읽고 .show () 메소드를 사용하여 표시하는 동안 I 동일한 문제에 직면 하였다. 나는 코드의 myDF.show () 라인이 오류를 얻을 것입니다.

    나에게는 빌드에서 스파크-SQL 라이브러리의 잘못된 버전으로 밝혀졌다.

    즉, 나는 대신에, SBT에서 내 외부 라이브러리에서 가졌다.

    문제는 내 build.sbt에 다음 줄을 해결 추가

    libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
    
  3. ==============================

    3.하나 개의 불꽃 의존성의 버전을 업데이트하는 경우, 동일한 버전으로 모두 업데이트하는 것이 가장 안전하다

    하나 개의 불꽃 의존성의 버전을 업데이트하는 경우, 동일한 버전으로 모두 업데이트하는 것이 가장 안전하다

  4. from https://stackoverflow.com/questions/40388450/apache-spark-java-lang-nosuchmethoderror-rddtopairrddfunctions by cc-by-sa and MIT license