我有一个相关矩阵,在pyspark 2.2上计算如下:
from pyspark.ml.linalg import Vectors
from pyspark.ml.stat import Correlation
from pyspark.ml.linalg import Vectors
from pyspark.ml.feature import VectorAssembler
datos = sql("""select * from proceso_riesgos.jdgc_bd_train_mn_ingresos""")
Variables_corr= ['ingreso_final_mix','ingreso_final_promedio',
'ingreso_final_mediana','ingreso_final_trimedia','ingresos_serv_q1',
'ingresos_serv_q2','ingresos_serv_q3','prom_ingresos_serv','y_correc']
assembler = VectorAssembler(
inputCols=Variables_corr,
outputCol="features")
datos1=datos.select(Variables_corr).filter("y_correc is not null")
output = assembler.transform(datos)
r1 = Correlation.corr(output, "features")
结果是一个数据帧,其中包含一个名为“pearson(features):matrix”的变量:
Row(pearson(features)=DenseMatrix(20, 20, [1.0, 0.9428, 0.8908, 0.913,
0.567, 0.5832, 0.6148, 0.6488, ..., -0.589, -0.6145, -0.5906, -0.5534,
-0.5346, -0.0797, -0.617, 1.0], False))]
我需要获取这些值并将其导出到excel中,或者能够操作结果。 一份清单是必须的。
谢谢你的帮助!!
请尝试此代码。用我的
read()
调用替换您的数据。注意,在映射lambda函数之前,我已经将SQL df转换为RDD。corr_mat
从技术上讲是很小的,使用pandas df很容易管理。示例输出:
相关问题 更多 >
编程相关推荐