无法从spark插件中读取JSON对象

时间:2018-04-03 07:51:59

标签: python-3.x apache-spark spark-streaming

我正在尝试通过套接字发送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程序可以打印出爬虫发送的消息。有谁知道这有什么问题?

1 个答案:

答案 0 :(得分:0)

我认为问题出在socketTextStream

ssc.socketTextStream(TCP_IP, TCP_PORT)

这一行是行为的罪魁祸首。您可以尝试使用socketStream类的StreamingContext方法吗?

您可能需要提供自定义转换器对象才能使用此方法。