【发布时间】:2020-11-04 12:33:19
【问题描述】:
我对 Scala/Spark 完全陌生,我正在尝试从头开始创建一个 Spark 应用程序,该应用程序计算 n 整数集之间的确切 Jaccard similarity(您不需要知道它是什么来回答这个问题问题)。
我有一个数据框,其中每一行都是一组整数,例如:
var sets = List(Set(1, 5, 7, 4), Set(3, 5, 0), Set(10, 1, 5)).toDF
还有一个函数jacsim(s1, s2),它返回两个集合之间的 Jaccard 相似度。我想定义一个函数,给定sets 数据帧返回另一个数据帧,该数据帧在位置 (i, j) 处包含jacsim(sets(i), sets(j)) 的结果。我该怎么做?
另外:将生成的数据框用作表格是个好主意吗?我正在阅读 Spark 不“喜欢”被索引访问的行,因为这会阻碍并行性。我应该返回一个包含单行的数据框并将每个可能的对作为新列吗?
【问题讨论】:
标签: scala apache-spark apache-spark-sql mapreduce