大家好!
我正在处理推文数据库以执行情绪分析,我遇到了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)
你能帮助我吗?