Scala 在Spark中运行只读测试

Scala 在Spark中运行只读测试,scala,apache-spark,Scala,Apache Spark,我想比较使用Spark(例如HDFS/S3N)的不同存储系统的读取性能。我为此编写了一个小型Scala程序: import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf import org.apache.spark.storage.StorageLevel object SimpleApp { def main(args: Arr

我想比较使用Spark(例如HDFS/S3N)的不同存储系统的读取性能。我为此编写了一个小型Scala程序:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.storage.StorageLevel

object SimpleApp {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("WordCount")
    val sc = new SparkContext(conf)
    val file = sc.textFile("s3n://test/wordtest")
    val splits = file.map(word => word)
    splits.saveAsTextFile("s3n://test/myoutput")
  }
}

我的问题是,是否可以使用Spark运行只读测试?对于上面的程序,saveAsTextFile()是否也会导致写入?

是。“saveAsTextFile”使用给定路径将RDD数据写入文本文件。

我不确定这是否可行。为了运行转换,必须执行后续操作

官员说:

Spark中的所有转换都是惰性的,因为它们不会立即计算结果。相反,他们只记得应用于某些基本数据集(例如文件)的转换。仅当操作需要将结果返回到驱动程序时,才会计算转换

考虑到这一点,
saveAsTextFile
可能不被认为是所有可用操作中最轻的。存在几种轻量级的替代方案,例如
count
first
。这些将利用转换阶段几乎所有的工作,使您能够度量解决方案的性能


您可能希望检查并选择最适合您的要求。

您可能希望尝试比
saveAsTextFile
更轻的内容,例如
count
。谢谢,这是一个非常有用的提示@MikelUrkia,你能补充一下,作为一个可以接受的答案吗?