【问题标题】:Fastest way to load multiple numpy arrays into spark rdd?将多个 numpy 数组加载到 spark rdd 中的最快方法?
【发布时间】: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


【解决方案1】:

对于我的应用程序,我使用了 sparkit-learn 项目中的类 ArrayRDD 将 numpy 数组加载到 spark RDD 中。我没有抱怨,但您的里程可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-08
    • 2014-04-06
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多