我正在尝试训练一个k-means模型,目前正处于检查特征向量的相关性阶段。
当我针对我的特征向量运行pearson相关性时,我无法看到所有特征的结果。
我正在运行的代码是。
val cor = Correlation.corr(scoringDf, "features")
cor.show(false)
相关性运行得很好 但是当我试图用show方法查看结果时 (因为Correlation. corr返回一个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
numRowsNumber of rows to show()方法有几个选项,例如你可以尝试:
truncate如果设置为大于0,则将字符串截断为截断字符,所有单元格将右对齐。
vertical如果设置为true,垂直打印输出行(每列值一行)。
你可以查看文档。
http:/spark.apache.orgdocs2.3.0apiscalaindex.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