【发布时间】:2018-03-09 06:56:22
【问题描述】:
我有一个 JavaRdd 记录 我想根据条件从记录中创建 3 JavaRdd:
JavaRdd<MyClass> records1 =records1.filter(record -> “A”.equals(record.getName()));
JavaRdd<MyClass> records2 =records1.filter(record -> “B”.equals(record.getName()));
JavaRdd<MyClass> records13=records1.filter(record -> “C”.equals(record.getName()));
问题是,我可以像上面显示的那样做,但我的记录可能有数百万条记录,我不想扫描所有记录 3 次。 所以我想对记录进行一次迭代。
我需要这样的东西:
records
.forEach(record -> {
if (“A”.equals(records.getName()))
{
records1(record);
}
else if (“B”.equals(records.getName()))
{
records2(record);
}
else if (“C”.equals(records.getName()))
{
records3(record);
}
});
如何在 Spark 中使用 JavaRDD 实现这一点?
【问题讨论】:
标签: apache-spark java-8 rdd