所以我有一个RDD,这个RDD与其元素的索引配对。我想简单地迭代它(或者如果有一个很好的Spark函数来执行此操作)并通过比较它们的一个值来检查相邻元素。如果相邻元素完成此检查,我想在不同的非RDD结构中记下它们的索引,可能是ListBuffer。
这可能与某种Spark特殊功能有关,还是我必须手动简单地通过它进行迭代,然后我将如何迭代它呢?
答案 0 :(得分:2)
RDD的一个主要特征是它是不可变的。创建后,您可以根据需要多次迭代,但您无法对其进行任何更改。
如果要进行更改,则需要通过转换创建新的RDD。
此外,如果你想迭代一个RDD并检查相邻的元素,这个逻辑很可能不会很好地工作,因为RDD是分布式的,你通常无法保证每个记录旁边都有哪些记录。其他。您可以通过指定分区来对数据进行分组来进行控制,但除非您明确使用函数对数据进行分组,否则我仍然不会依赖它。
如果您发布一些示例数据,可能更容易帮助您解决问题。