将RDD转换为DataFrame scala - NoSuchMethodError

时间:2016-07-23 12:03:40

标签: scala apache-spark

我正在尝试将RDD转换为scala中的DataFrame,如下所示

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;

我不能为我的生活弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:0)

您需要定义一个模式,通过Reflection方法或通过编程方式将RDD转换为Dataframe。

关于Dataframes-Dataframe的一个非常重要的观点是带有模式的RDD。在您的情况下,定义案例类并将文件的值映射到该类。希望它会有所帮助