如何在Spark 2.1.0中查找来自不同JavaPairRDD的数据

时间:2017-03-20 19:23:23

标签: apache-spark apache-spark-dataset

你好我对Spark和大数据编程都很陌生。我正在开发一个带有spark的报告生成应用程序,它从s3位置加载来自序列文件的大量数据,并进行一些过滤和标准匹配。我需要帮助我们如何从不同的RDD获取或查找数据。 我有1个RDD我已经过滤了数据。和其他rdd是原始的。

JavaPairRDD<String,List<DepartmentBudget>> result = criteriaRDD.mapToPair(new reportCriteriaMatching());

这给了我正确的报告数据,其中String是报告名称,DepartmentBudget列表是部门ID和部门名称所在的数据。

JavaPairRDD<String,Iterable<Employee>> departmentEmpoyeeRDD = employeeRDD.groupBy(emp -> emp.getDepartment().getDepartmentname());

在上述部门的EpoyeeRDD中,我们根据部门名称对所有员工进行了分组。

现在我想从resultRDD创建报告,我需要从每个部门获得所有员工。

我尝试使用广播变量,但是departmentEmpoyeeRDD太大而无法播放。它的大小约为13GB。所以,我通过广播这个RDD获得了OOM例外。

请建议!

谢谢。

0 个答案:

没有答案