在Spark中运行只读测试

时间:2015-03-11 13:19:43

标签: 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: 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()导致一些写入吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我不确定这是否可行。要运行转换,需要后验操作

来自官方Spark documentation

  

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

考虑到这一点,saveAsTextFile可能不被视为可用的广泛行动中最轻的。存在几种轻量级替代方案,例如countfirst等操作。这些将几乎将整个工作用于转换阶段,使您能够衡量解决方案的性能。

您可能需要查看available actions并选择最符合您要求的那个。