【发布时间】:2017-03-17 15:35:50
【问题描述】:
我之前问过一个关于如何Convert scipy sparse matrix to pyspark.sql.dataframe.DataFrame 的问题,并在阅读了提供的答案以及this article 后取得了一些进展。我最终找到了以下代码,用于将 scipy.sparse.csc_matrix 转换为 pandas 数据框:
df = pd.DataFrame(csc_mat.todense()).to_sparse(fill_value=0)
df.columns = header
然后我尝试使用建议的语法将 pandas 数据帧转换为 spark 数据帧:
spark_df = sqlContext.createDataFrame(df)
但是,我得到以下错误:
ValueError: cannot create an RDD from type: <type 'list'>
我不相信它与 sqlContext 有任何关系,因为我能够将另一个大致相同大小的 pandas 数据帧转换为 spark 数据帧,没问题。有什么想法吗?
【问题讨论】:
-
你运行的是什么版本?我觉得还可以
-
在转换为 Spark DF 之前尝试
print df。你可能会得到一些关于list类型的线索。 -
打印部分数据帧(100K 行,5300 列)后,我注意到的唯一特征是每列的 dtype 为“float64”,因此每个数字都表示为带有尾随零的数量。然而,只有前 10 列需要浮动。不过,我不确定这是否是导致错误的原因。
-
如果您可以在此处打印 pandas 数据框的示例输出,那么它将帮助我们解决问题
标签: python pandas dataframe pyspark spark-dataframe