繁体   English   中英

PySpark:线程“ dag-scheduler-event-loop”中的异常java.lang.OutOfMemoryError:Java堆空间

[英]PySpark: Exception in thread “dag-scheduler-event-loop” java.lang.OutOfMemoryError: Java heap space

我试图使用StringIndexerOneHotEncoderVectorAssembler将类别转换为数值,以便在VectorAssembler中应用K均值聚类。 这是我的代码:

indexers = [
    StringIndexer(inputCol=c, outputCol="{0}_indexed".format(c))
    for c in columnList
]

encoders = [OneHotEncoder(dropLast=False, inputCol=indexer.getOutputCol(),
                          outputCol="{0}_encoded".format(indexer.getOutputCol()))
            for indexer in indexers
            ]

assembler = VectorAssembler(inputCols=[encoder.getOutputCol() for encoder in encoders], outputCol="features")


pipeline = Pipeline(stages=indexers + encoders + [assembler])
model = pipeline.fit(df)
transformed = model.transform(df)

kmeans = KMeans().setK(2).setFeaturesCol("features").setPredictionCol("prediction")
kMeansPredictionModel = kmeans.fit(transformed)

predictionResult = kMeansPredictionModel.transform(transformed)
predictionResult.show(5)

Exception in thread "dag-scheduler-event-loop" java.lang.OutOfMemoryError: Java heap space得到Exception in thread "dag-scheduler-event-loop" java.lang.OutOfMemoryError: Java heap space 如何在代码中分配更多的堆空间或更佳? 分配更多空间是否明智? 我可以将程序限制为可用的线程数和堆空间吗?

我遇到了同样的问题。 用户帮助所允许的进程数量不断增加。 运行例如:

ulimit -u 4096

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM