Apache spark 创建RDD所需的时间

Apache spark 创建RDD所需的时间,apache-spark,Apache Spark,我对spark比较陌生,我想知道是否有必要知道RDD转换所花费的总时间。目前,我的日志只显示特定RDD消耗的内存,没有显示转换所花费的时间 例如,当我发出命令时,val Text=sc.textFile(“README.md”) 我在日志中得到以下信息, 14/09/09 12:15:38信息内存存储:使用curMem=0、maxMem=311387750调用EnsureRefreeSpace(32856) 14/09/09 12:15:38信息内存存储:块广播0作为值存储到内存(估计大小32

我对spark比较陌生,我想知道是否有必要知道RDD转换所花费的总时间。目前,我的日志只显示特定RDD消耗的内存,没有显示转换所花费的时间

例如,当我发出命令时,val Text=sc.textFile(“README.md”)

我在日志中得到以下信息,

14/09/09 12:15:38信息内存存储:使用curMem=0、maxMem=311387750调用EnsureRefreeSpace(32856)
14/09/09 12:15:38信息内存存储:块广播0作为值存储到内存(估计大小32.1 KB,可用296.9 MB)
Text:org.apache.spark.rdd.rdd[String]=MappedRDD[1]位于文本文件的位置:12

有什么办法可以计算出这件事所花的时间吗


提前感谢。

创建RDD时,您只需声明一个对象,所需时间为毫秒。同样,对于类似的贴图、过滤器等。在执行类似计数、获取、收集等操作之前,不会实际运行任何任务

调用操作时,日志将包含计时数据

scala> sc.textFile("filename").count
...
14/09/09 12:38:43 INFO scheduler.DAGScheduler: Stage 0 (count at <console>:13) finished in 0.984 s
14/09/09 12:38:43 INFO spark.SparkContext: Job finished: count at <console>:13, took 1.070632705 s
res1: Long = 380868
scala>sc.textFile(“文件名”).count
...
14/09/09 12:38:43信息调度程序。DAG调度程序:阶段0(计数:13)在0.984秒内完成
14/09/09 12:38:43信息spark.SparkContext:作业完成:计数时间:13,耗时1.070632705秒
res1:Long=380868

谢谢您的回复。如果您有一个巨大的数据集,并且要对其进行过滤,这会不会花费一些时间?是的,但过滤是一种转换,并且是惰性地进行计算的。这需要时间,但不是在你调用过滤器的时候。也许一个好的想法是你创建一个过滤器,而不是调用它。您调用操作(它们运行作业,处理所有父RDD),创建转换。感谢您的帮助。我现在更明白了,如果您不理解转换和操作之间的区别,那么您应该在尝试编写代码之前阅读一些文档。