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



我正在尝试训练一个k-均值模型,目前正处于检查特征向量内相关性的阶段。

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

我运行的代码是:

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

相关性运行良好,但当我尝试使用show方法查看结果时(因为correlation.cor返回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

numRows显示的行数

截断如果设置为大于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 

相关内容

  • 没有找到相关文章

最新更新