Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Scala在文件中保存值_Scala_Apache Spark - Fatal编程技术网

如何使用Scala在文件中保存值

如何使用Scala在文件中保存值,scala,apache-spark,Scala,Apache Spark,我试图在文件中保存一个值,但不断出现错误 我已经试过了 .saveAsTextFile("/home/amel/timer")` 减速器功能 val startReduce=System.currentTimeMillis() val y=sc.textFile(“/home/amel/10MB”).filter(!.contains(“NULL”)).filter(!.contains(“NULL”)) val er=x.map(行=>{ val cols=行分割(“,”) (cols(1)

我试图在文件中保存一个值,但不断出现错误

我已经试过了

.saveAsTextFile("/home/amel/timer")`
减速器功能

val startReduce=System.currentTimeMillis()
val y=sc.textFile(“/home/amel/10MB”).filter(!.contains(“NULL”)).filter(!.contains(“NULL”))
val er=x.map(行=>{
val cols=行分割(“,”)
(cols(1).拆分(“—”)0+“,“+cols(2)+”,“+cols(3),1)
}).reduceByKey(+).map(x=>x.1+”,“+x.2)
er.collect.foreach(println)
val endReduce=System.currentTimeMillis()
val durationReduce=((endReduce startReduce)/1000).saveAsTextFile(“home/amel/timer/”)
我收到的错误在这条线上

val-durationReduce=((endReduce-startReduce)/1000).saveAsTextFile(“home/amel/timer/”)
它说:
savastextfile不是Long的成员


我想要的输出是一个数字

savastextfile
是类
org.apache.spark.rdd.rdd
()

表达式
((endReduce startReduce)/1000)
的类型为
Long
,因此它没有此方法,因此出现错误“
saveAsTextFile不是Long
的成员”

这个答案适用于以下情况:

基本上情况是,你有一个Int,你想把它写入一个文件。您的第一个想法是跨机器集群创建一个分布式集合,该集合只包含这个Int,并让这些机器以分布式方式将Int写入一组文件

我认为这不是正确的方法。不要使用Spark将Int保存到文件中。相反,您可以使用PrintWriter:

val out = new java.io.PrintWriter("filename.txt")
out.println(finalvalue)
out.close()

savastextfile
是类
org.apache.spark.rdd.rdd
()

表达式
((endReduce startReduce)/1000)
的类型为
Long
,因此它没有此方法,因此出现错误“
saveAsTextFile不是Long
的成员”

这个答案适用于以下情况:

基本上情况是,你有一个Int,你想把它写入一个文件。您的第一个想法是跨机器集群创建一个分布式集合,该集合只包含这个Int,并让这些机器以分布式方式将Int写入一组文件

我认为这不是正确的方法。不要使用Spark将Int保存到文件中。相反,您可以使用PrintWriter:

val out = new java.io.PrintWriter("filename.txt")
out.println(finalvalue)
out.close()

Long
没有名为
saveAsTextFile
的方法如果要编写长值,有很多方法,一个简单的方法是使用java
PrintWriter

val duration = ((endReduce-startReduce)/1000)
new PrintWriter("ome/amel/timer/time") { write(duation.toString); close }
如果仍要使用spark RDD
saveAsTextFile
,则可以使用

sc.parallelize(Seq(duration)).saveAsTextFile("path")

但是仅仅写一个值是没有意义的。

Long
没有名为
saveAsTextFile
的方法如果您想写一个长值,有很多方法,一个简单的方法就是使用java
PrintWriter

val duration = ((endReduce-startReduce)/1000)
new PrintWriter("ome/amel/timer/time") { write(duation.toString); close }
如果仍要使用spark RDD
saveAsTextFile
,则可以使用

sc.parallelize(Seq(duration)).saveAsTextFile("path")

但是仅仅写一个值是没有意义的。

错误很明显,
endReduce startReduce
提供了long,您如何在
long
中使用
saveAsTextFile
saveAsTextFile
是RDD中的一种方法。错误很明显,
endReduce startReduce
提供了long,以及如何在
long
中使用
saveAsTextFile
savastextfile
是RDD中的一个方法。我使用的是Scala。我使用的是Scala。