我不想使用databricks api,因为我们遇到的问题很少。
我想在Java1.7,Spark1.6.2中把df转换成rdd,从rdd转换成textfile
我想我的Dataframe保存为一个文本文件,我知道下面的代码工作,如果我们使用Java1.8
df.rdd.map(row => row.mkString("\t")).coalesce(1).saveAsTextFile("outputDirRdd")
但是我试图用Java1.7输入上面相同的代码,但我无法获得正确的语法,因此使用了下面的代码。
df.toJavaRDD().map(new Function<???,???>() {
public ??? call(?? input) throws Exception {
?????
}
}).coalesce(1).saveAsTextFile("/s/filelocation");
我不知道上面的代码是否正确。
请帮帮我,提前谢谢。
2条答案
按热度按时间vhipe2zx1#
@问题就是这样解决的。
下面这段代码让我遇到了它所有超类的序列化问题,很少有类我无法更改它们。
因此,解决方法如下:
下面的代码是sepratecls的创建
db2dz4w82#
将java 1.7与apache spark结合使用的正确语法如下所示:
在这里
Row
,即org.apache.spark.sql.Row
是输入数据类型和String
是输出数据类型。这个
call
功能将需要Row
作为输入参数并返回String
作为输出。这就是为什么call
是public String call(Row o) throws Exception {}
.