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
Apache spark 在Spark中高效创建两个RDD_Apache Spark - Fatal编程技术网

Apache spark 在Spark中高效创建两个RDD

Apache spark 在Spark中高效创建两个RDD,apache-spark,Apache Spark,我正在调查使用Spark进行一个每小时生成数百GB数据的项目。我正在努力使第一步达到最佳状态,尽管感觉应该很简单 假设每天都有一个进程将数据分成两部分,这两部分都不足以缓存在内存中。有没有一种方法可以在单个spark作业中实现这一点,而不必从HDFS加载源数据并进行两次解析 假设我想将所有“Dog”事件写入一个新的HDFS位置,将所有“Cat”事件写入另一个位置。一旦我指定了第一个“写入文件”操作(针对狗),Spark将开始依次将每个文件加载到RAM中,并过滤掉所有狗。然后,它必须重新解析每个文

我正在调查使用Spark进行一个每小时生成数百GB数据的项目。我正在努力使第一步达到最佳状态,尽管感觉应该很简单

假设每天都有一个进程将数据分成两部分,这两部分都不足以缓存在内存中。有没有一种方法可以在单个spark作业中实现这一点,而不必从HDFS加载源数据并进行两次解析

假设我想将所有“Dog”事件写入一个新的HDFS位置,将所有“Cat”事件写入另一个位置。一旦我指定了第一个“写入文件”操作(针对狗),Spark将开始依次将每个文件加载到RAM中,并过滤掉所有狗。然后,它必须重新解析每个文件以找到cats,即使它可以同时完成这两项工作。它可以加载每个分区的原始数据,并一次性写出该分区的猫和狗

如果数据适合内存,我可以过滤到这两种类型的事件,然后缓存,然后进行两次写入。但事实并非如此,我也不知道如何让spark在每个分区的基础上实现这一点。我研究了API文档,认为我一定错过了什么

如有任何建议,将不胜感激,谢谢

可能的重复可能的重复