Scala 在Spark中运行只读测试
我想比较使用Spark(例如HDFS/S3N)的不同存储系统的读取性能。我为此编写了一个小型Scala程序: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
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,你能补充一下,作为一个可以接受的答案吗?