Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/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 RDD中的数据_Apache Spark_Rdd_Sharing - Fatal编程技术网

Apache spark 如何在两个应用程序之间共享Spark RDD中的数据

Apache spark 如何在两个应用程序之间共享Spark RDD中的数据,apache-spark,rdd,sharing,Apache Spark,Rdd,Sharing,在两个spark作业之间共享spark RDD数据的最佳方式是什么 我有一个案例,作业1:Spark滑动窗口流媒体应用程序将定期消费数据并创建RDD。这是我们不希望持久存储的 作业2:查询将访问在作业1中创建的相同RDD并生成报告的作业 我已经看到了一些他们建议SPARK Job Server的查询,但由于它是一个开放源代码,所以不确定它是否是一个可能的解决方案,但任何指针都将非常有帮助 谢谢 简而言之,你不能在工作之间共享RDD。共享数据的唯一方法是将数据写入HDFS,然后在另一个作业中提取数

在两个spark作业之间共享spark RDD数据的最佳方式是什么

我有一个案例,作业1:Spark滑动窗口流媒体应用程序将定期消费数据并创建RDD。这是我们不希望持久存储的

作业2:查询将访问在作业1中创建的相同RDD并生成报告的作业

我已经看到了一些他们建议SPARK Job Server的查询,但由于它是一个开放源代码,所以不确定它是否是一个可能的解决方案,但任何指针都将非常有帮助


谢谢

简而言之,你不能在工作之间共享RDD。共享数据的唯一方法是将数据写入HDFS,然后在另一个作业中提取数据。如果速度是一个问题,并且您希望保持恒定的数据流,那么您可以使用HBase,这将允许从第二个作业进行非常快速的访问和处理

要获得更好的想法,请查看以下内容:


根据官方文件描述:

请注意,目前没有一种模式提供跨应用程序的内存共享。如果希望以这种方式共享数据,建议运行一个服务器应用程序,通过查询相同的RDD来服务多个请求。


您可以使用ApacheIgnite在不同的应用程序之间共享RDD。 ApacheIgnite提供了一个共享RDD的抽象,通过该抽象,应用程序可以访问对应于不同应用程序的RDD。此外,Ignite还支持SQL索引,而本机Spark则不支持。
有关更多详细信息,请参阅。

您可以保存到临时视图。在创建该表的会议结束之前,其他会议将可以使用该表

,而这在理论上可以回答问题,在此处包括答案的基本部分,并提供链接供参考。