【发布时间】:2020-08-12 15:21:36
【问题描述】:
我有 5 个文件,每个文件的大小为
File1=~500KB
File2=~1MB
File3=~1GB
File4=~6GB
File5=~1GB
我正在使用 Wholetextfile 读取所有 5 个文件。每个文件都有不同的列数。
*val data = sc.wholeTextFiles("..........Path......./*")
在进一步分析中,我发现我的代码在以下行之后无法正常工作..关于在这种情况下如何使用 mappartition 的任何建议
val files = data.map { case (filename, content) => filename}
files.collect.foreach( filename => {
..../Performing some operations/...
})*
所以当我尝试在服务器上提交此代码时,它会给出错误 java.lang.OutOfMemoryError 当我从源路径中删除 6GB 文件时,代码工作正常。所以只有大文件的问题。 我正在使用下面的火花提交代码..
*spark-submit --class myClassName \
--master yarn-client --conf spark.executor.extraJavaOptions="-
Dlog4j.configuration=log4j.properties" \
--conf spark.driver.extraJavaOptions="-Dlog4j.configuration=...FilePath.../log4j.properties" \
--files ...FilePath.../log4j.properties --num-executors 4 --executor-cores 4 \
--executor-memory 10g --driver-memory 5g --conf "spark.yarn.executor.memoryOverhead=409" \
--conf "spark.yarn.driver.memoryOverhead=409" .................JarFilePath.jar*
Spark 版本:1.6.0 斯卡拉版本:2.10.5
【问题讨论】:
-
要求更多(例如20-30g)内存?还是可以减少问题工作集?
-
还是不行
标签: scala apache-spark