Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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中执行器之间的数据_Apache Spark_Hadoop - Fatal编程技术网

Apache spark 比较Spark中执行器之间的数据

Apache spark 比较Spark中执行器之间的数据,apache-spark,hadoop,Apache Spark,Hadoop,我们有一个spark应用程序,其中数据在不同的执行者之间共享。但是我们还需要比较执行器之间的数据,其中一些数据存在于执行器1中,而一些数据存在于执行器2中。我们想知道怎样才能在spark中取得成功 例如:具有包含以下详细信息的文件: Name, Date1, Date2 A, 2019-01-01, 2019-01-23 A, 2019-02-12, 2019-03-21 A, 2019-04-01, 2019-05-31 A, 2019-06-02, 2019-12-30 B, 2019-01

我们有一个spark应用程序,其中数据在不同的执行者之间共享。但是我们还需要比较执行器之间的数据,其中一些数据存在于执行器1中,而一些数据存在于执行器2中。我们想知道怎样才能在spark中取得成功

例如:具有包含以下详细信息的文件:

Name, Date1, Date2
A, 2019-01-01, 2019-01-23
A, 2019-02-12, 2019-03-21
A, 2019-04-01, 2019-05-31
A, 2019-06-02, 2019-12-30
B, 2019-01-01, 2019-01-21
B, 2019-02-10, 2019-03-21
B, 2019-04-01, 2019-12-31
我需要通过检查第一行的date2和第二行的date1来找出这些元素之间的总间隙,依此类推。。i、 e

例如:名称A:2019-02-12-2019-01-23+2019-04-01-2019-03-21+2019-06-02-2019-05-31+2019-12-31-2019-12-30。。这一年将在2019-12-31结束,因此有1天的间隔 如果上述公式之间的差异在每个日期>0,则还应提供间隙数 将是4岁

名称B:2019-02-10-2019-01-21+2019-04-01- 2019-03-21,缺口数量为2个


一种方法是使用collectAsList,它将所有数据检索到驱动程序,但是是否有一种不同的有效方法来直接跨执行器比较它们,如果是,我们如何做到这一点?

只需编写一个带有延迟窗口的SQL查询,通过限定,检查相邻行的日期ad date减1,主键限定为Name。在名称中也进行排序


您不必担心执行者,Spark将根据执行者服务的分区的名称自动为您哈希。

问题太模糊,请提供更好的示例。整个想法是处理每个分区,但我同意在某些情况下,有一些问题需要考虑,所以一个例子将是有益的。这仍然是一个很好的问题。@thebluephantom,我已经更新了这个问题,并提供了一个示例。名称呢?@thebluephantom,将检查每个名称条目的总间距。如果文件中有多个名称,每个名称将提供差异。我怀疑您的执行者方面不正确。