Я думаю, что вы, возможно, немного неправильно поняли документы.Corelation.corr
возвращает DataFrame
, который точно так же распараллелен, как и любой другой Pyspark DataFrame
.Если вы должны выполнить следующий вызов:
pearsonCorr = Correlation.corr(dataset, 'features', 'pearson')
, данные не будут отправлены обратно на узел драйвера.Это будет верно до тех пор, пока фактическое действие, такое как collect
, не будет вызвано pearsonCorr
.DenseMatrix
, упомянутый в Correlation
документах , фактически является результатом вызова collect
, а не самого вызова Correlation.corr
:
pearsonCorr = Correlation.corr(dataset, 'features', 'pearson').collect()[0][0]
print(str(pearsonCorr).replace('nan', 'NaN'))
DenseMatrix([[ 1. , 0.0556..., NaN, 0.4004...],
[ 0.0556..., 1. , NaN, 0.9135...],
[ NaN, NaN, 1. , NaN],
[ 0.4004..., 0.9135..., NaN, 1. ]])