估算输入数据的Spark内存需求

elcex8rz  于 2023-05-18  发布在  Apache
关注(0)|答案(2)|浏览(206)

给定一个未类型化的Dataset,Spark如何存储包含实际数据的Row
我的直觉是它是一个Map,但我找不到任何代码引用。

root
 |-- firstname: string (nullable = true)
 |-- lastname: string (nullable = true)
 |-- age: integer (nullable = true)

我问这个问题是因为我们有一个动态的数据集处理,我试图根据输入数据估计所需的内存。

flvlnr44

flvlnr441#

有太多的变量(交换,执行计划中的多个步骤,spark自动优化,缓存......)来估计您正在考虑的估计方式。
看看Spark UI。请参阅阶段详细信息,其中有一些与内存使用相关的统计信息,包括“Peak execution memory”。

您还可以获得非常详细和细粒度的指标。您可以将其发送到您自己的监控工具,如Datadog/Loki/...并进行更多的分析以获得更具体的想法。

a0zr77ik

a0zr77ik2#

DataFrame只是Dataset[Row]的类型别名。
有关内存管理和存储here的更多详细信息,可以查看官方文档

相关问题