2017-06-17 34 views
0

我想讀。廣州文件的火花內容/斯卡拉在數據幀/ RDD使用下面的代碼讀數壓縮文件中的火花與斯卡拉

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

的.gz文件是28 MB,當我使用此命令執行火花提交

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

它在控制檯中給出Java 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

The原來的答案其實這裏https://stackoverflow.com/questions/36604145/read-whole-text-files-from-a-compression-in-spark – eliasah

+2

的[從星火壓縮整個閱讀文本文件]可能的複製( https://stackoverflow.com/questions/36604145/read-whole-text-files-from-a-compression-in-spark) – mrsrinivas

回答

0

聲明:該代碼和說明將在一個小的壓縮文本文件中使用的火花純粹的閱讀,它收集到的每一行和打印每行的整個文件來安慰數組。的方式和理由的數量要做到這一點以外遠遠多於做火花

1)使用SparkSession代替SparkContext如果你能擺動它。 sparkSession.read.text()是要使用的命令(它會自動處理一些壓縮格式) 2)或者至少使用sc.textFile()而不是整個文本文件 3)您正在調用.collect對該數據將整個文件返回給驅動程序(在此因爲你本地沒有網絡綁定)。如果您必須執行收集,請將--driver-memory選項添加到spark shell以增加內存。