我按照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,而不是自动应用。