【问题标题】:Check size broadcast variable PySpark检查大小广播变量 PySpark
【发布时间】:2016-02-12 15:27:48
【问题描述】:

我无法找到我的广播变量的大小。由于推动了集群的内存限制,这与我的项目有关。集群在 YARN 上运行。在应用程序管理器中,我可以看到各个执行程序和驱动程序的内存使用情况,但我认为这些只是持久化的 RDDS。

【问题讨论】:

  • 广播数据只是一个普通的 Python 对象。它不占用任何特殊空间AFAIK。您应该能够简单地估计它的本地大小(sys.getsizeof 对于本地对象应该足够了)大小并将其乘以执行器的数量。

标签: python apache-spark pyspark


【解决方案1】:

Spark 使用 pickle 序列化/反序列化广播变量。您可能想尝试的一件事是检查泡菜转储的大小,例如:

>>> import cPickle as pickle
>>> data = list(range(int(10*1e6)))  # or whatever your broadcast variable is
>>> len(pickle.dumps(data)) 
98888896  # the measurement of the size of your broadcast variable, in bytes

关于影响集群内存限制的广播变量,previous question of mine 提供了一些来自 zero323 的有用提示。

【讨论】:

猜你喜欢
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 2015-01-13
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多