2017-06-17 35 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以增加内存。