2016-07-23 91 views
1

我想一個RDD轉換成數據幀中階如下轉換RDD到數據幀斯卡拉 - 的NoSuchMethodError

val posts = spark.textFile("~/allPosts/part-02064.xml.gz") 

import org.apache.spark.SparkContext._ 
import org.apache.spark._ 
import org.apache.spark.rdd._ 
import org.apache.spark.SparkContext._ 

val sqlContext = new org.apache.spark.sql.SQLContext(spark) 
import sqlContext.implicits._ 

posts.map(identity).toDF() 

當我這樣做,我得到了下面的錯誤。

java.lang.NoSuchMethodError: org.apache.spark.sql.SQLContext$implicits$.stringRddToDataFrameHolder(Lorg/apache/spark/rdd/RDD;)Lorg/apache/spark/sql/DataFrameHolder; 

我不能爲了我的生活弄清楚我做錯了什麼。

+0

缺少一個jar或版本不匹配? –

+0

我在scala 2.10上使用spark 1.3,所以我不確定版本不匹配。這很奇怪,因爲我已經研究了一段時間,這是它第一次出現。 – k3thomps

+0

你使用筆記本嗎?例如jupyter或toree? – eliasah

回答

0

您需要定義架構以通過反射方法或通過編程方式將RDD轉換爲數據幀。

有關Dataframes- Dataframe的一個非常重要的一點是具有模式的RDD。在你的情況下定義一個案例類,並將文件的值映射到該類。希望它會幫助