2017-06-22 6 views
0

私はApache Sparkを学んでいます。 CSVデータをデータフレームにロードしています。これには約5分(多くのデータ)がかかります。私がspark-shellを終了してspark-shellに戻ってログすると、データはなくなります。これは正常な動作ですか?私はこの文書で何も見つけられません。どのようにしてセッション間でデータを保持できますか?スパークシェルを終了すると、すべてのデータフレームデータがなくなります。これは正常ですか?

答えて

1

はい、ipythonシェルでも同様に、シェルを終了すると保存されない配列を作成すると予想されます。それを格納するには、行うことができます:あなたはあなたのシェルを再起動したら

import spark.implicits._ 
val df = spark.range(10).map(l => l.toInt).toDF() // create a mock data frame 
df.write.parquet("outputfile.parquet") // save it to a file, consider s3 with s3://yourbucket/yourfile.parquet if it is too large 

、あなたが戻ってあなたのデータフレームを取得することができます:

spark.read.parquet("outputfile.parquet").collect 
+0

は、健全性チェックをありがとう! – rastacide

+0

なぜ 'collect'を呼び出すことをお勧めしますか? DataFrameを元に戻したい場合は、 'spark.read.parquet(" outputfile.parquet ")' –

+0

を使用します。このスニペットをコピーすると、この小さな例で動作することがわかります。私は大きなデータフレームを収集すべきではないことを知っていることを願っています:) – geoalgo

関連する問題