如何解决使用dict的pySparks替换功能-是否在驱动程序中执行?
上下文
我正在使用 Docker 容器,并使用 client-mode 连接到 pySpark 。启动上下文后,我对DataFrame
做了一些事情,包括使用.replace()
和Python-dict
进行的替换。
df = 'some pySpark Dataframe'
# The dict I will use for .replace()
mapping = {
'a': 1,'b': 2,...
}
df = df.replace(to_replace=mapping,subset["..."])
在实际应用中,df
很大,并且映射字典包含约100个键。
问题
我正在使用的集群具有足够的能力来处理计算,并且我为spark-context提供了足够的资源。
无论如何,在执行.replace()
时Docker容器崩溃,提示没有足够的可用内存。但是,我认为这不应该成为问题,因为我认为.replace()
是在集群内部而不是在驱动程序内部处理的。它必须在本地处理(否则容器不会因驱动程序而崩溃)。
我的问题是:
- 由于使用Python-
.replace()
,dict
是否在驱动程序内部处理? - 是否可以选择在集群内部而不是驱动程序中实际处理
.replace()
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。