2016-06-27 9 views
0

私はSparkを初めて使用しています。私のアプリケーションでは、多数の配列からRDDを作成したいと考えています。それぞれの配列は(10,000,5,000)です。現在、私は以下を試しています:複数のnumpy配列をspark rddにロードする最速の方法は?

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) 

パンダのデータフレームからスパークのデータフレームへの変換が非常に遅いことを除いて、すべてのステップが高速です。 numpy配列のサブセット(10,000、500など)を使用すると、それをSparkデータフレームに変換するのに数分かかります。しかし、もし私が全面的な配列(10,000,5,000)を使用すると、それはちょうどハングアップします。

私のワークフローをスピードアップするためにできることはありますか?それとも、まったく別のやり方でこれをやっているべきですか? (参考、私は最初のnumpy配列についています)

+0

csvファイル(ヘッダーなし)に変換してから、全体としてrddを読み込むためにワイルドカードを使用しましたか? – Kevin

答えて

0

私のアプリケーションでは、numpy配列をRDDに書き込むためにsparkit-learnプロジェクトのクラスArrayRDDを使用しました。私は苦情はありませんでしたが、あなたのマイレージは異なる場合があります。

関連する問題