【发布时间】:2016-06-27 22:35:32
【问题描述】:
我是 Spark 的新手。在我的应用程序中,我想从许多 numpy 数组创建一个 RDD。每个 numpy 数组是 (10,000, 5,000)。目前,我正在尝试以下方法:
rdd_list = []
for np_array in np_arrays:
pandas_df = pd.DataFrame(np_array)
spark_df = sqlContext.createDataFrame(pandas_df) ##SLOW STEP
rdd_list.append(spark_df.rdd)
big_rdd = sc.union(rdd_list)
所有步骤都很快,除了将 Pandas 数据帧转换为 Spark 数据帧非常慢。如果我使用 numpy 数组的子集,例如 (10,000, 500),则需要几分钟才能将其转换为 Spark 数据帧。但如果我使用完整的 numpy 数组 (10,000, 5,000),它就会挂起。
我可以做些什么来加快我的工作流程?或者我应该以完全不同的方式做到这一点? (仅供参考,我有点坚持最初的 numpy 数组。)
【问题讨论】:
-
您是否尝试过将它们转换为 csv 文件(无标题),然后使用通配符来读取整个 rdd?
标签: numpy pandas apache-spark pyspark spark-dataframe