无法从case类的RDD中保存AsParquetFile



我按照Spark SQL指南中的说明进行操作。

import sqlContext.implicits._
val people: RDD[Person] = ... 
people.saveAsParquetFile("people.parquet")

下面是我的代码:

val rawRDD = sc.textFile(peopleFile).map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt))

这里的CCD_ 1是CCD_。

当我使用时

rawRDD.saveAsParquetFile("people.parquet")

它会导致错误:

错误:(31,12)值saveAsParquetFile不是的成员org.apache.spark.rdd.rdd[个人]rawRDD.saveAsParquetFile("people.parquet")^

我之前已经添加了import sqlContext.implicits._,因为由implicits转换为DataFrame。

为什么我不能在这里saveAsParquetFile from a RDD of case class

要转换,必须在RDD上调用.toDF()。

val rawRDD = sc.textFile(peopleFile).map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
rawRDD.saveAsParquetFile("people.parquet")

1.3中删除了自动转换-请参阅下面的升级注释http://spark.apache.org/docs/latest/sql-programming-guide.html:

此外,隐式转换现在只使用toDF方法来增强由产品(即事例类或元组)组成的RDD,而不是自动应用。

相关内容

  • 没有找到相关文章

最新更新