Spark:如何有效地使交叉口保留重复项(在Scala中)?

TCS等级

我有2个RDD,每个RDD是一组包含重复项的字符串。我想找到保留重复项的两个集合的交集例子:

RDD1 : a, b, b, c, c, c, c

RDD2 : a, a, b, c, c

我想要的交集是集合,a, b, c, c即交集将包含每个元素出现在两个集合中的最小时间。

默认intersection转换不保留重复的AFAIK。有没有一种方法可以使用其他一些转换和/或交集变换有效地计算交集?我正在尝试避免通过算法进行操作,这不太可能像执行Spark方法那样高效。(对于感兴趣的人,我正在尝试为一组文件计算Jaccard bag的相似度)。

罗汉·阿莱蒂

从的实现中借用一点intersection,您可以执行以下操作:

(val rdd1 = sc.parallelize(Seq("a", "b", "b", "c", "c", "c", "c")))
(val rdd2 = sc.parallelize(Seq("a", "a", "b", "c", "c")))

val cogrouped = rdd1.map(k => (k, null)).cogroup(rdd2.map(k => (k, null)))
val groupSize = cogrouped.map { case (key, (buf1, buf2)) => (key, math.min(buf1.size, buf2.size)) }
val finalSet = groupSize.flatMap { case (key, size) => List.fill(size)(key) }

(finalSet.collect = Array(a, b, c, c))

之所以cogroup可行,是因为它将为每个分组重复出现一对值(在这种情况下,所有空值)。另请注意,在这里,我们所进行的改组操作不会比最初使用时多intersection

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有效地从列表中删除重复项

来自分类Dev

如何有效地删除python中dataframe或csv文件中的所有重复项?

来自分类常见问题

有效地删除元组列表中的部分重复项

来自分类Dev

更有效地将匹配列与data.table中的重复项合并

来自分类Dev

更有效地将匹配列与data.table中的重复项合并

来自分类Dev

有效地从大列表中删除重复项?

来自分类Dev

最有效地防止大型SQL Server表中的重复项

来自分类Dev

Python 3.6 如何有效地比较 2 个无序列表的字符串、保留重复项并解析不相等的列表大小?

来自分类Dev

如何有效地删除重复内存?

来自分类Dev

如何有效地加载 ArrayCollection 中的最后一项?

来自分类Dev

如何有效地从DataFrame中删除重复的行

来自分类Dev

如何有效地从大型文本文件中删除重复行?

来自分类Dev

如何使用Spark有效地检查列中的所有值?

来自分类Dev

有两个非常大的列表/集合 - 如何有效地检测和/或删除重复项

来自分类Dev

如何有效地从 (s,d) 对表中过滤 s 和 d 的重复值,只保留最小的 (s,d) 对

来自分类Dev

如何有效地从 Scala 中的字符串中删除非单词字符?

来自分类Dev

如何有效地在Spark Datframe中添加多个列

来自分类Dev

如何有效地选择Spark中包含特定值的数据框列?

来自分类Dev

如何有效地在Java中实现此Scala操作

来自分类Dev

有效地将2D数组转换为对象,从而消除JavaScript中的重复项

来自分类Dev

Word:有效地组合交叉引用

来自分类Dev

如何有效地搜索列表中的项目?

来自分类Dev

如何有效地引用Excel中的整行?

来自分类Dev

如何有效地在Spritekit中暂停游戏?

来自分类Dev

如何有效地搜索列表中的项目?

来自分类Dev

如何有效地语法

来自分类Dev

如何有效地提取仅包含 SQL 中具有重复元素的行的子表?

来自分类Dev

如何有效地消除双精度数组中的重复元素(在C中)?

来自分类Dev

如何用概率列表有效地计算二项式概率?在R中

Related 相关文章

  1. 1

    有效地从列表中删除重复项

  2. 2

    如何有效地删除python中dataframe或csv文件中的所有重复项?

  3. 3

    有效地删除元组列表中的部分重复项

  4. 4

    更有效地将匹配列与data.table中的重复项合并

  5. 5

    更有效地将匹配列与data.table中的重复项合并

  6. 6

    有效地从大列表中删除重复项?

  7. 7

    最有效地防止大型SQL Server表中的重复项

  8. 8

    Python 3.6 如何有效地比较 2 个无序列表的字符串、保留重复项并解析不相等的列表大小?

  9. 9

    如何有效地删除重复内存?

  10. 10

    如何有效地加载 ArrayCollection 中的最后一项?

  11. 11

    如何有效地从DataFrame中删除重复的行

  12. 12

    如何有效地从大型文本文件中删除重复行?

  13. 13

    如何使用Spark有效地检查列中的所有值?

  14. 14

    有两个非常大的列表/集合 - 如何有效地检测和/或删除重复项

  15. 15

    如何有效地从 (s,d) 对表中过滤 s 和 d 的重复值,只保留最小的 (s,d) 对

  16. 16

    如何有效地从 Scala 中的字符串中删除非单词字符?

  17. 17

    如何有效地在Spark Datframe中添加多个列

  18. 18

    如何有效地选择Spark中包含特定值的数据框列?

  19. 19

    如何有效地在Java中实现此Scala操作

  20. 20

    有效地将2D数组转换为对象,从而消除JavaScript中的重复项

  21. 21

    Word:有效地组合交叉引用

  22. 22

    如何有效地搜索列表中的项目?

  23. 23

    如何有效地引用Excel中的整行?

  24. 24

    如何有效地在Spritekit中暂停游戏?

  25. 25

    如何有效地搜索列表中的项目?

  26. 26

    如何有效地语法

  27. 27

    如何有效地提取仅包含 SQL 中具有重复元素的行的子表?

  28. 28

    如何有效地消除双精度数组中的重复元素(在C中)?

  29. 29

    如何用概率列表有效地计算二项式概率?在R中

热门标签

归档