pyspark localiterator监听器已停止

时间:2017-08-17 12:05:48

标签: python python-2.7 apache-spark pyspark rdd

我正在使用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地图中的分区。

没有任何作用。

两个代码部分应该以相同的方式工作,有什么区别?为什么第一个不起作用?

谢谢

1 个答案:

答案 0 :(得分:0)

问题是驱动程序缺少内存,我使用

解决了
conf = SparkConf()
conf.set("spark.driver.memory", "3G")
sc = SparkContext(conf=conf)

在盯着火花背景之前