【发布时间】:2019-08-28 00:16:30
【问题描述】:
我正在研究数据块中的 pyspark。我想生成一个相关热图。假设这是我的数据:
myGraph=spark.createDataFrame([(1.3,2.1,3.0),
(2.5,4.6,3.1),
(6.5,7.2,10.0)],
['col1','col2','col3'])
这是我的代码:
import pyspark
from pyspark.sql import SparkSession
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from ggplot import *
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.stat import Correlation
from pyspark.mllib.stat import Statistics
myGraph=spark.createDataFrame([(1.3,2.1,3.0),
(2.5,4.6,3.1),
(6.5,7.2,10.0)],
['col1','col2','col3'])
vector_col = "corr_features"
assembler = VectorAssembler(inputCols=['col1','col2','col3'],
outputCol=vector_col)
myGraph_vector = assembler.transform(myGraph).select(vector_col)
matrix = Correlation.corr(myGraph_vector, vector_col)
matrix.collect()[0]["pearson({})".format(vector_col)].values
直到这里,我才能得到相关矩阵。结果如下:
现在我的问题是:
- 如何将矩阵传输到数据框?我试过How to convert DenseMatrix to spark DataFrame in pyspark?和How to get correlation matrix values pyspark的方法。但这对我不起作用。
- 如何生成如下所示的相关热图:
因为我刚刚学习了 pyspark 和 databricks。 ggplot 或 matplotlib 都可以解决我的问题。
【问题讨论】:
标签: ggplot2 pyspark heatmap correlation databricks