PySpark计算相关性

VJu*_*une 10 python apache-spark apache-spark-sql pyspark apache-spark-mllib

我想使用pyspark.mllib.stat.Statistics.corr函数来计算两列pyspark.sql.dataframe.DataFrame对象之间的相关性.corr函数需要采取rddVectors对象.如何将一列df['some_name']转换rddVectors.dense对象?

zer*_*323 13

应该没有必要.对于数字,您可以使用DataFrameStatFunctions.corr以下方法直接计

df1 = sc.parallelize([(0.0, 1.0), (1.0, 0.0)]).toDF(["x", "y"])
df1.stat.corr("x", "y")
# -1.0
Run Code Online (Sandbox Code Playgroud)

否则你可以使用VectorAssembler:

from pyspark.ml.feature import VectorAssembler

assembler = VectorAssembler(inputCols=df.columns, outputCol="features")
assembler.transform(df).select("features").flatMap(lambda x: x)
Run Code Online (Sandbox Code Playgroud)

  • 它只支持皮尔逊。 (2认同)

MUK*_*MUK 6

df.stat.corr("column1","column2")