2017-06-17 3 views
0

と火花で圧縮されたファイルを読み込む次のコードを使用して、私はデータフレーム/ RDDで火花/ Scalaでは.gzというファイルの内容を読み取るしようとしていますスカラ座

val conf = new SparkConf() 
val sc = new SparkContext(conf) 
    val data = sc.wholeTextFiles("path to gz file") 
    data.collect().foreach(println); 

が.gzファイルが28メガバイトで、ときに私このコマンドを使用してspark submitを実行しますか?

spark-submit --class sample--master local[*] target\spark.jar 

これはコンソールにJavaヒープスペースの問題を示します。

これは.gzファイルを読み込む最良の方法ですか、はいの場合はどのようにしてJavaヒープエラーの問題を解決できますか。

enter image description here

おかげ

+0

あなたのソリューションは[複数の圧縮ファイルを読む]にあります(https://stackoverflow.com/questions/38635905/reading-in-multiple-files-compressed-in-tar-gz-archive-into-spark) –

+0

実際に元の答えはhttps://stackoverflow.com/questions/36604145/read-whole-text-files-from-a-compression-in-spark – eliasah

+2

[Sparkの圧縮から全文ファイルを読む]の可能な複製https://stackoverflow.com/questions/36604145/read-whole-text-files-from-a-compression-in-spark) – mrsrinivas

答えて

0

免責事項:このコード及び説明は、純粋に、スパークを使用して小さな圧縮されたテキストファイルで読み込んだ全ての行及び印刷コンソールにファイル全体のすべての行のアレイにそれを収集します。あなたがそれをスウィングすることができるなら、SparkContextの代わりにSparkSessionを使用してください。

1)SparkContextの代わりにSparkSessionを使用してください。 sparkSession.read.text()は、(いくつかの圧縮フォーマットを自動的に処理する)コマンドです 2)または少なくともsc.textFile()をwholeTextFilesの代わりに使用します。 3)ファイル全体をドライバに戻すそのデータに.collectを呼び出していますあなたがネットワーク接続されていないローカルなので)。あなたが収集をしなければならない場合、メモリを増やすために--driver-memoryオプションをsparkシェルに追加してください。

関連する問題