Apache Spark:filter()的问题

时间:2016-03-08 11:15:13

标签: python twitter apache-spark pyspark

大家好!

我正在处理推文数据库以执行情绪分析,我遇到了Spark的方法过滤器()问题。

首先需要将正面(第一个字段= 4)和负面推文(第一个字段= 0)分开

def parseLine(line):
    fields=line.split(",")
    return (fields[0], fields[5].encode("utf8"))

data = sc.textFile("path\\training_sent140.csv")
dataRDD = data.map(parseLine)
dataRDD.first() #OK
dataRDDneg = dataRDD.filter(lambda x:"0" in x[0])
dataRDDneg.first() #OK

dataRDDneg = dataRDD.filter(lambda x:"0" in x[0])对我来说很好。

但是当我尝试为正面推文做同样的事情时,它会返回错误

dataRDDpos = dataRDD.filter(lambda x:"4" in x[0])​
​dataRDDpos.first() #not Ok
  

错误:

     

16/03/08 10:42:21 ERROR Utils:py的线程stdout编写器中未捕获的异常   托恩   java.net.SocketException:Socket已关闭          在java.net.Socket.shutdownOutput(Socket.java:1496)          在org.apache.spark.api.python.PythonRunner $ WriterThread $$ anonfun $ run $ 3 $   $ anonfun $ $应用$ 2.适用MCV $ SP(PythonRDD.scala:288)          在org.apache.spark.api.python.PythonRunner $ WriterThread $$ anonfun $ run $ 3 $   $ anonfun $ $适用2.适用(PythonRDD.scala:288)          在org.apache.spark.api.python.PythonRunner $ WriterThread $$ anonfun $ run $ 3 $   $ anonfun $ $适用2.适用(PythonRDD.scala:288)          在org.apache.spark.util.Utils $ .tryLog(Utils.scala:1754)          在org.apache.spark.api.python.PythonRunner $ WriterThread $$ anonfun $ run $ 3。   申请(PythonRDD.scala:288)          在org.apache.spark.util.Utils $ .logUncaughtExceptions(Utils.scala:1741)          在org.apache.spark.api.python.PythonRunner $ WriterThread.run(PythonRDD.s   卡拉:239)

你能帮助我吗?

0 个答案:

没有答案