首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pyspark中播放一个巨大的rdd?

如何在pyspark中播放一个巨大的rdd?
EN

Stack Overflow用户
提问于 2019-02-25 11:55:44
回答 1查看 77关注 0票数 0

当我打印出rdd的第一个元素时,如下所示:

代码语言:javascript
复制
print("input = {}".format(input.take(1)[0]))

我得到的结果是:(u'motor', [0.001,..., 0.9])

[0.001,..., 0.9]的类型是列表。

输入rdd中的元素数等于53304100

当我想广播输入RDD时,我的问题出现了,如下所示:

代码语言:javascript
复制
brod = sc.broadcast(input.collect())

生成的异常如下所示(我只显示了exeception的第一部分):

代码语言:javascript
复制
    WARN TaskSetManager: Lost task 56.0 in stage 1.0 (TID 176, 172.16.140.144, executor 0): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/worker.py", line 229, in main
    process()
  File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/worker.py", line 224, in process
    serializer.dump_stream(func(split_index, iterator), outfile)
  File "/cvmfs/soft.computecanada.ca/easybuild/software/2017/Core/spark/2.3.0/python/lib/pyspark.zip/pyspark/serializers.py", line 372, in dump_stream
    vs = list(itertools.islice(iterator, batch))
TypeError: <lambda>() missing 1 required positional argument: 'document'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-25 14:30:51

如果RDD太大,应用程序可能会遇到OutOfMemory错误,这是由collect方法提取驱动程序内存中的所有数据引起的,而内存通常不够大。

所以你可以试着通过以下方式提高你的司机的记忆力

代码语言:javascript
复制
pyspark --driver-memory 4g
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54859297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档