Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Apache spark 为什么在Spark UI for RDD中只显示转换而不显示操作的作业条目_Apache Spark_Rdd - Fatal编程技术网

Apache spark 为什么在Spark UI for RDD中只显示转换而不显示操作的作业条目

Apache spark 为什么在Spark UI for RDD中只显示转换而不显示操作的作业条目,apache-spark,rdd,Apache Spark,Rdd,我有一个文本文件作为源:- key1,value1 key2,value2 key3,value3 key4,value4 我在Scala shell中定义了以下RDD:- val rdd=sc.textFile("sample.txt").map(_.split(",")).map(x=>( x(0),x(1) )).sortByKey() 正如您所看到的,这里只有转换,没有操作。根据Spark的懒惰评估规则,它不应该触发任何作业。但是这个声明本身触发了一个作业,我可以从Spark

我有一个文本文件作为源:-

key1,value1
key2,value2
key3,value3
key4,value4
我在Scala shell中定义了以下RDD:-

 val rdd=sc.textFile("sample.txt").map(_.split(",")).map(x=>( x(0),x(1) )).sortByKey()
正如您所看到的,这里只有转换,没有操作。根据Spark的懒惰评估规则,它不应该触发任何作业。但是这个声明本身触发了一个作业,我可以从Spark UI中的新作业条目中确认。有趣的是,这某种程度上是由sortByKey操作引起的。我知道sortByKey会导致分区之间的混乱。但这也应该只有在最终需要采取行动时才会发生。另一个谜是,如果我用groupByKey替换sortByKey,它不会触发作业,即使这两个操作都会导致洗牌。因此,这里有两个关键问题

  • 为什么转换sortByKey会导致作业触发
  • 为什么groupByKey不会触发作业,而只有sortByKey会触发作业,而这两种转换都会导致洗牌
  • …就这么简单:)