在Java Spark中收集数据集时超出了OutOfMemoryError GC开销限制

丹·马特林:

我有一些大约250MB的数据。

我想加载数据并将其转换为地图

class MyData implements Serializable {

    private Map<String, List<SomeObject>> myMap;

    MyData(SparkSession sparkSession, String inputPath) {

        Dataset<Klass> ds = sparkSession.read().json(inputPath).as(Encoders.bean(Klass.class));
        myMap = ds.collectAsList().stream().collect(Collectors.toMap(
                                    Klass::getField1(),
                                    Klass::getField2()
                            )
                    );
    }
}

这是我的火花执行配置

--master yarn --deploy-mode cluster --executor-cores 2 --num-executors 200 --executor-memory 10240M

将数据集转换为列表/地图不是一个好习惯吗?还是配置问题?还是代码问题?

史蒂夫C:

看起来您可以使用以下命令将数据集中的所有数据收集到Spark驱动程序中:

myMap = ds.collectAsList()...

因此,您应该--driver-memory 2G在命令行上使用来设置驱动程序内存(又名“火花执行配置”)。

该参数的默认值1G可能不足以容纳250M的原始数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java Spark-java.lang.OutOfMemoryError:超出了GC开销限制-大数据集

Tomcat java.lang.OutOfMemoryError:超出了GC开销限制

java.lang.OutOfMemoryError:超出了GC开销限制

Pyspark:java.lang.OutOfMemoryError:超出了GC开销限制

如何重现Java OutOfMemoryError-超出了GC开销限制

错误java.lang.OutOfMemoryError:超出了GC开销限制

Jmeter java.lang.OutOfMemoryError:超出了GC开销限制

java.lang.OutOfMemoryError(超出了GC开销限制)

java.lang.OutOfMemoryError:在maven中运行findbugs时超出了GC开销限制

为什么Spark失败并出现java.lang.OutOfMemoryError:超出了GC开销限制?

“ java.lang.OutOfMemoryError:超出GC开销限制”中的过多GC时间的持续时间

Spring Boot和Java java.lang.OutOfMemoryError:超出了GC开销限制

优化配置单元查询。java.lang.OutOfMemoryError:超出了Java堆空间/ GC开销限制

java.lang.OutOfMemoryError:WSO2 MB上超出了GC开销限制

java.lang.OutOfMemoryError:Android 1.4超出了GC开销限制

kapt发生异常:java.lang.OutOfMemoryError:超出了GC开销限制

生成失败原因:java.lang.OutOfMemoryError:超出了GC开销限制

即时运行java.lang.OutOfMemoryError:超出了GC开销限制

“ OutOfMemoryError:超出了GC开销限制”:使用Java解析大型json文件

PySpark错误java.lang.OutOfMemoryError:超出了GC开销限制

获取错误:java.lang.OutOfMemoryError:超出了GC开销限制

线程“主”中的异常java.lang.OutOfMemoryError:GWT应用程序中超出了GC开销限制

java.lang.OutOfMemoryError:mule和snowflake连接时超出GC开销限制错误

读取Java中的Big文件,速度太慢,超出了gc开销限制

82秒内提取数据库中的一行,java.lang.OutOfMemoryError:对于大型数据库,超出了GC开销限制

外部进程可以强制JVM抛出“ java.lang.OutOfMemoryError:超出GC开销限制”

Clojure错误-超出了GC开销限制

Android Studio:超出了GC开销限制

PySpark超出了GC开销限制