2016-12-06 97 views
0

我想从一个Android应用程序“IMU + GPS sensorstream”链路接收数据: https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgps&hl=enTCP连接,蟒蛇

我需要一个火花DSTREAM出来。但我收到以下错误。

from pyspark import SparkContext 
from pyspark.streaming import StreamingContext 


spc = SparkContext(appName="testReceive") 
stc = StreamingContext(spc, 5) 

#Is there an error in below line? 
lines = stc.socketTextStream("localhost" , 5555) 

words = lines.flatMap(lambda line: line.split(" ")) 
pairs = words.map(lambda word: (word, 1)) 
wordCounts = pairs.reduceByKey(lambda x, y: x + y) 

wordCounts.pprint() 

stc.start() 

stc.awaitTermination() 

ERROR : 

------------------------------------------- 
Time: 2016-12-06 10:48:55 
------------------------------------------- 

16/12/06 10:48:55 WARN ReceiverSupervisorImpl: Restarting receiver with delay 2000 ms: Error connecting to localhost:5555 
java.net.ConnectException: Connection refused (Connection refused) 

我已转发正在使用的端口'5555'。

如果我使用下面的程序来接收它成功数据。 因此以类似的方式我怎么能接收数据,使之成为火花流。

请帮帮忙,坚持了一个多星期更现在!。

import socket, traceback 

host = '' 
port = 5555 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) 
s.bind((host, port)) 

while True: 
    try: 
     message, address = s.recvfrom(8192) 
     message = message.decode() 
     data = message.split(",") 
     print(data) 
    except (KeyboardInterrupt, SystemExit): 
     raise 
    except: 
     traceback.print_exc() 

回答

0

lines = stc.socketTextStream(“localhost”,5555)中没有错误。

U可以使用NetCat通过端口5555发送数据。 Downoad netcat并解压缩到文件夹。 从命令行导航到其中u解压网的路径和运行下面的代码: NC -l -p在Windows (5555你的情况),这将打开端口5555听。 现在运行你的pySpark代码。 开始输入代码在命令行中,你可以看到他们在Python控制台计数。