当数据集构建 "OOM"s 时,这意味着什么?

What does it mean when a dataset build "OOM"s?

我听说这个词用得很多,关于构建 OOMing 或 运行 内存不足;那是什么意思?我说的是 运行 数据集构建在 Transforms Python 或 Transforms SQL.

OOM == OutOfMemory

这是在 JVM 尝试在堆中分配比其可用内存或使用 GC(垃圾收集)释放更多内存的情况下导致的。在实现庞大的查询计划时在您的驱动程序中,或者在处理非常大的数组列或其他无法放入内存的此类数据时在执行程序中。

当 JVM + 非 JVM 使用的非堆内存多于未使用的堆内存和 memoryOverhead(同时适用于驱动程序和执行程序)的组合时,也会发生这种情况。

这可能是由于没有足够的主 JVM 内存、memoryOverhead 或使用过多 Python 内存(例如,在您的驱动程序上使用 .collect() 或在执行程序上使用UDF)