java - 计算 Spark 数据集上的 Pearson 相关性

标签 java rdd apache-spark-ml pearson-correlation

我有一个 JavaRDD,其中包含 double 组。现在我想计算每个数组之间的 PIL 逊系数。但是,如果我将 rdd 转换为 vector 并应用 stats.corr(),该函数会计算列,但我希望它计算行。谁能建议一种将我的数据转换为列的方法,以便我可以对其应用 corr() 函数?

编辑:statistics.corr() 函数采用 javardd < vector > 作为输入。

最佳答案

您可以尝试将每一行转换为 RDD[Double] 并比较它们的组合(手动或循环)

val seriesX: RDD[Double] = ... // row1
val seriesY: RDD[Double] = ... // row2 must have the same number of partitions and cardinality as seriesX
val correlation: Double = Statistics.corr(seriesX, seriesY, "pearson")

或者你可以尝试转置 RDD 并将生成的 rdd 传递给 corr(..) - 关于转置的一些想法 - How to transpose an RDD in Spark

如果您有多个行/记录,并且您希望每个行/记录与其他行/记录之间存在相关性,则矩阵可能太大,并且两个选项可能都太低(如果根本不可能)

关于java - 计算 Spark 数据集上的 Pearson 相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852717/

相关文章:

eclipse - 对 RDD 元组比较

scala - 如何在Spark中操纵我的数据框?

apache-spark - 与 Spark 中的管道进行交叉验证

c# - .NET WS 客户端中可空类型的问题

java - Android - Vpnservice DatagramChannel.open() 不起作用

c# - Adobe 是否有与 Java deployment.properties 文件等效的文件?

scala - spark 是否优化应用于 RDD 的多个过滤器?

python - 将字符串列转换为向量列 Spark DataFrames

apache-spark - Spark 异常 : Values to assemble cannot be null

java - 如何在rest api java中指定路径注释来接受任何路径?