我希望从Android应用程序接收数据" IMU + GPS sensorstream"链接: https://play.google.com/store/apps/details?id=de.lorenz_fenster.sensorstreamgps&hl=en
我需要制作一个火花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 :(得分:0)
lines = stc.socketTextStream(" localhost",5555)中没有错误。
U可以使用NetCat通过端口5555发送数据。 Downoad netcat并解压缩到一个文件夹。 从命令行导航到u解压缩网络的路径并运行以下代码: 在Windows上使用nc -l -p(在您的情况下为5555) 这将打开端口5555进行收听。 现在运行pySpark代码。 开始在命令行中输入代码,您可以在Python控制台中看到它们的数量。
答案 1 :(得分:0)
在端口5555
上执行作业之前,请检查是否已启动NetCat服务
要检查是否已安装NetCat-
在cmd上运行命令:
nc
如果看到这个,
Cmd line:
然后NetCat
已经安装。
在指定端口上启动服务。
如果没有,那么
1.从互联网下载NetCat(搜索Windows的Netcat-zip)
2.提取到C:\ drive
3.设置Windows环境变量:转到环境变量->系统变量->编辑路径,然后添加新路径,例如C:\ netcat->确定->确定
4.重新打开cmd并检查命令nc
在指定端口上(在cmd终端上)启动NetCat服务:
nc -l -p 5555
现在运行(使用spark-submit或通过诸如pycharm之类的任何编辑器)流作业。并继续从cmd终端输入结果。