刚看到一个很久以前的帖子,说在Dataset下直接使用saveAsTextFile会报错。以前我也碰到过。
以前使用SparkContext保存文件很简单,
比如读取文件使用:
scala> val textFile = sc.textFile("file:///sample/words.txt")
scala> textFile.saveAsTextFile("file:///sample/savefile")
spark2.0以后,不少人开始使用SparkSession来处理文件。如果需要保存文件需要将Dataset的值先转rdd,然后再保存。否则会报如下错误:
error: value saveAsTextFile is not a member of org.apache.spark.sql.Dataset[String]
解决方法如下:
scala> val textFile = spark.read.textFile("file:///sample/words.txt")
scala> textFile.rdd.saveAsTextFile("file:///sample/savefile")