使用scala查看Spark中相关矩阵的所有列

Seeing all columns of a correlation matrix in Spark using scala

我正在尝试训练 k-means 模型,目前正在检查我的特征向量内的相关性。

当我 运行 对我的特征向量进行皮尔逊相关时,我无法看到所有特征的结果。

我运行ning的密码是:

val cor = Correlation.corr(scoringDf, "features")
cor.show(false)

相关性 运行 很好,但是当我尝试使用 show 方法(作为 Correlation.corr returns Datafame 对象)查看结果时,结果显示为

|1.0                  0.18047211468479446  0.08002566273874058   ... (5 total)
0.18047211468479446  1.0                  0.02926796076983553   ...
0.08002566273874058  0.02926796076983553  1.0                   ...
0.30256416877032244  0.15974389490583188  0.054692657400425136  ...
0.3408783412055776   0.13008391583866225  0.04241296238931376   ...|

有没有办法查看隐藏的列?

我也试过下面的代码,但结果是一样的。

val Row(coeff1: Matrix) = Correlation.corr(scoringDf, "features").head
println(s"Pearson correlation matrix:\n $coeff1")

编辑:

这里是 cor 数据框的架构

root
 |-- pearson(features): matrix (nullable = false)

方法 show() 有几个选项,例如你可以尝试:

def show(numRows: Int, truncate: Int, vertical: Boolean): Unit

行数 要显示的行数

截断 如果设置为大于 0,则截断字符串以截断字符并且所有单元格将右对齐。

垂直 如果设置为 true,则垂直打印输出行(每列值一行)。

可以看文档。

http://spark.apache.org/docs/2.3.0/api/scala/index.html#org.apache.spark.sql.Dataset

希望对您有所帮助。

此致。

我终于能够按照我想要的方式获得输出。 将我的代码更改为如下所示

val Row(coeff1: Matrix) = Correlation.corr(scoringDf, "features").head
println(s"Pearson correlation matrix:\n " + coeff1.toString(10, 100000))

输出如下图所示:

Pearson correlation matrix:
 1.0                  0.1804721146847944   0.08002566273874055   0.3025641687703226   0.34087834120557725   
0.1804721146847944   1.0                  0.02926796076983553   0.15974389490583193  0.13008391583866233   
0.08002566273874055  0.02926796076983553  1.0                   0.05469265740042514  0.042412962389313726  
0.3025641687703226   0.15974389490583193  0.05469265740042514   1.0                  0.241118490251708     
0.34087834120557725  0.13008391583866233  0.042412962389313726  0.241118490251708    1.0