Просмотр всех столбцов корреляционной матрицы в Spark с использованием scala - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь обучить модель k-средних и в настоящее время в фазе проверки корреляции внутри моих векторов признаков.

Когда я запускаю корреляцию Пирсона с моим вектором признаков, я не могу увидеть результаты для всех мои функции.

Код, который я запускаю:

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")

Редактировать:

вот схема для корма данных

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

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Наконец я могу получить результат, как я хочу. Изменен мой код, чтобы он выглядел следующим образом

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 
0 голосов
/ 23 апреля 2020

Метод show () имеет несколько параметров, например, вы можете попробовать:

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

numRows Количество отображаемых строк

truncate Если установлено более 0, обрезает строки для усечения символы и все ячейки будут выровнены по правому краю.

вертикальный При значении true печатает выходные строки по вертикали (одна строка на значение столбца).

Вы можете просмотреть документацию.

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

Надеюсь, это может быть полезно.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...