我正在使用pyspark
我使用此代码:
a = rdd.map(lambda x: function).toLocalIterator()
from collections import Counter
c = sum(a,Counter())
并收到以下错误
错误LiveListenerBus:SparkListenerBus已经停止了!删除 事件
SparkListenerStageCompleted(org.apache.spark.scheduler.StageInfo@1ada509b)
WARN Utils:最终抑制异常:连接重置 java.net.SocketException:连接重置为 java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:115) 在java.net.SocketOutputStream.write(SocketOutputStream.java:155)at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 在java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 在java.io.DataOutputStream.flush(DataOutputStream.java:123)at java.io.FilterOutputStream.close(FilterOutputStream.java:158)at at org.apache.spark.api.python.PythonRDD $$不久$ 2 $$ anonfun $运行$ 2.适用$ MCV $ SP(PythonRDD.scala:707) 在org.apache.spark.util.Utils $ .tryWithSafeFinally(Utils.scala:1346) 在 org.apache.spark.api.python.PythonRDD $$匿名$ 2.run(PythonRDD.scala:706) 压制:java.net.SocketException:断开管道(写入失败)at java.net.SocketOutputStream.socketWrite0(Native Method)at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) 在java.net.SocketOutputStream.write(SocketOutputStream.java:155) 在 java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 在java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 在java.io.FilterOutputStream.close(FilterOutputStream.java:158) 在java.io.FilterOutputStream.close(FilterOutputStream.java:159) ......还有3个
当我使用此代码时,它会得到正确的结果,没有错误
c = Counter()
for i,pair in a:
c+=Counter(pair)
我尝试使用rdd地图中的分区。
没有任何作用。
两个代码部分应该以相同的方式工作,有什么区别?为什么第一个不起作用?
谢谢
答案 0 :(得分:0)
问题是驱动程序缺少内存,我使用
解决了conf = SparkConf()
conf.set("spark.driver.memory", "3G")
sc = SparkContext(conf=conf)
在盯着火花背景之前