将Pandas DataFrame转换为Spark DataFrame

Dir*_*igo 7 python dataframe pandas pyspark spark-dataframe

我曾经问过一个关于如何将scipy稀疏矩阵转换为pyspark.sql.dataframe.DataFrame的问题,并在阅读了所提供的答案以及本文后取得了一些进展.我最终得到了以下代码,用于将scipy.sparse.csc_matrix转换为pandas数据帧:

df = pd.DataFrame(csc_mat.todense()).to_sparse(fill_value=0)
df.columns = header
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用建议的语法将pandas数据帧转换为spark数据帧:

spark_df = sqlContext.createDataFrame(df)
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

ValueError: cannot create an RDD from type: <type 'list'>
Run Code Online (Sandbox Code Playgroud)

我不相信它与sqlContext有任何关系,因为我能够将大致相同大小的另一个pandas数据帧转换为spark数据帧,没问题.有什么想法吗?

小智 0

to_sparse(fill_value=0)基本上已经过时了。只需使用标准变体

sqlContext.createDataFrame(pd.DataFrame(csc_mat.todense()))
Run Code Online (Sandbox Code Playgroud)

只要类型兼容就可以了。