我正在尝试通过套接字发送JSON对象,如
item = {“text”:“test1”,“location”:“test2”}
抓取程序
...
conn, adds = s.accept()
conn.send(json.dumps(item).encode('utf-8'))
...
Spark stream program:
...
sc = SparkContext(conf=conf)
scc = StreamingContext(sc, 4)
dataStream = ssc.socketTextStream(TCP_IP, TCP_PORT)
dataStream.pprint()
...
在这种情况下,代码dataStream.pprint()
将不会打印任何内容。但是如果我将抓取工具中的代码更改为
...
conn, adds = s.accept()
conn.send(json.dumps(item['text']).encode('utf-8'))
...
spark程序可以打印出爬虫发送的消息。有谁知道这有什么问题?
答案 0 :(得分:0)
我认为问题出在socketTextStream
。
ssc.socketTextStream(TCP_IP, TCP_PORT)
这一行是行为的罪魁祸首。您可以尝试使用socketStream
类的StreamingContext
方法吗?
您可能需要提供自定义转换器对象才能使用此方法。