[HADOOP] NoSuchMethodError : org.apache.spark.sql.SQLContext.applySchema
HADOOPNoSuchMethodError : org.apache.spark.sql.SQLContext.applySchema
나는 아래의 코드를 사용하여 아파치 스파크에서 제공하는 sqlcontext를 사용하여 hdfs에 저장된 파일을 쿼리하려고하는데 NoSuchMethodError를 얻고있다.
package SQL
import org.apache.spark.SparkContext
import org.apache.spark.sql._
object SparSQLCSV { def main(args: Array[String]) {
val sc = new SparkContext("local[*]","home")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val people = sc.textFile("/home/devan/Documents/dataset/peoplesTest.csv")
val delimiter = ","
val schemaString = "a,b".split(delimiter)//csv header
//Automated Schema creation
val schema = StructType(schemaString.map(fieldName => StructField(fieldName, StringType, true)))
val peopleLines = people.flatMap(x=> x.split("\n"))
val rowRDD = peopleLines.map(p=>{
Row.fromSeq(p.split(delimiter))
})
val peopleSchemaRDD = sqlContext.applySchema(rowRDD, schema)
peopleSchemaRDD.registerTempTable("people")
sqlContext.sql("SELECT b FROM people").foreach(println)
} }
Spark에서 제공하는 커맨드 라인을 사용하여 똑같은 방법을 시도해 보았습니다.하지만 작동하지만, 스칼라 프로젝트를 생성하고 그것을 실행하려고하면 위의 오류가 발생합니다. 내가 뭘 잘못하고 있죠 ?
해결법
-
==============================
1.NoSuchMethodError는 대개 라이브러리간에 호환되지 않는 것을 의미합니다. 이 특별한 경우에는 이전 버전의 Spark와 함께 Spark 1.3이 필요한 spark-csv 버전을 사용하고있는 것처럼 보입니다.
NoSuchMethodError는 대개 라이브러리간에 호환되지 않는 것을 의미합니다. 이 특별한 경우에는 이전 버전의 Spark와 함께 Spark 1.3이 필요한 spark-csv 버전을 사용하고있는 것처럼 보입니다.
from https://stackoverflow.com/questions/29543400/nosuchmethoderror-org-apache-spark-sql-sqlcontext-applyschema by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 파일을 HDFS에 저장하는 명령 (0) | 2019.07.02 |
---|---|
[HADOOP] Java API를 사용하여 HDFS에 데이터 업로드 (0) | 2019.07.02 |
[HADOOP] PySpark : newAPIHadoopFile을 사용하여 여러 줄 레코드 텍스트 파일에서 읽고 매핑하고 줄입니다. (0) | 2019.07.02 |
[HADOOP] 감속기가 <Text, IntWritable> 및 <Text, IntWritable>을 수신 할 매퍼를 내보내도록 설정하는 방법은 무엇입니까? (0) | 2019.07.02 |
[HADOOP] HADOOP :: java.lang.ClassNotFoundException : WordCount (0) | 2019.07.02 |