Apache spark 如何使用spark streaming来流式处理websocket?

Apache spark 如何使用spark streaming来流式处理websocket?,apache-spark,websocket,spark-streaming,databricks,Apache Spark,Websocket,Spark Streaming,Databricks,我需要使用ApacheSpark将websocket中的流写入拼花地板文件。当前的ApacheSpark流媒体功能似乎不支持现成的WebSocket apache spark中有一个从TCP套接字读取流的命令,因此我尝试将websocket转换为常规套接字,但尚未使用测试脚本让spark读取套接字: 我将服务器设置为: 导入套接字,socketserver,时间 类MyHandler(socketserver.BaseRequestHandler): def句柄(自身): 计数器=1 而1: #

我需要使用ApacheSpark将websocket中的流写入拼花地板文件。当前的ApacheSpark流媒体功能似乎不支持现成的WebSocket

apache spark中有一个从TCP套接字读取流的命令,因此我尝试将websocket转换为常规套接字,但尚未使用测试脚本让spark读取套接字:

我将服务器设置为:

导入套接字,socketserver,时间
类MyHandler(socketserver.BaseRequestHandler):
def句柄(自身):
计数器=1
而1:
#dataReceived=self.request.recv(1024)
#如果未收到数据:中断
str_send='msg'+str(计数器)
self.request.send(str_send.encode(“utf-8”))
计数器+=1
时间。睡眠(2)
myServer=socketserver.TCPServer(('localhost',5146),MyHandler)
myServer.serve_forever()
在普通客户机上工作正常:

导入套接字,socketserver,时间
def客户端(ip,端口):
sock=socket.socket(socket.AF\u INET,socket.sock\u流)
sock.connect((ip,端口))
尽管如此:
响应=str(sock.recv(1024))
打印(“接收:{}”。格式(响应))
ip='localhost'
端口=5146
客户端(ip、端口)
但当我使用spark的示例读取TCP流时,仍然没有得到任何数据:

lines=spark\
.readStream\
.格式(“套接字”)\
.选项(“主机”、“本地主机”)\
.选项(“端口”,5146)\
.load()
query=lines.writeStream\
.格式(“控制台”)\
.outputMode('append')\
.start()\
.终止
我还尝试写入一个文件,但该文件是空白的

已建立连接,但没有数据通过:

$ netstat -na | grep "5146"
tcp4       0      0  127.0.0.1.5146         127.0.0.1.59823        ESTABLISHED
tcp4       0      0  127.0.0.1.59823        127.0.0.1.5146         ESTABLISHED
tcp4       0      0  127.0.0.1.5146         *.*                    LISTEN

你有没有想过?