gpt4 book ai didi

hadoop - 多个笛卡尔加入pySpark

转载 作者:行者123 更新时间:2023-12-02 21:42:46 25 4
gpt4 key购买 nike

即使是很小的数据集,执行多个笛卡尔联接时也会出现内存错误。谁能解释为什么会这样?

In [1]: foo = sc.records([{'foo': 123}, {'foo': 321}])
In [2]: bar = sc.records([{'bar': 123}, {'bar': 321}])
In [3]: baz = sc.records([{'baz': 123}, {'baz': 321}])
In [4]: qux = foo.cartesian(bar)\
...: .map(lambda (x,y): x.merge(y))\
...: .cartesian(baz)\
...: .map(lambda (x,y): x.merge(y))
In [5]: qux.collect()

java.lang.OutOfMemoryError: GC overhead limit exceeded

最佳答案

我最终定义了自己的cartesianJoin函数

def cartesianJoin(self, other):
return self.map(lambda rec: (0, rec)).join(other.map(lambda rec: (0, rec))).map(lambda (key, (x, y)): x.merge(y))
end

关于hadoop - 多个笛卡尔加入pySpark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com