Pyspark:如何从给定的API Url流式传输数据

时间:2016-08-10 08:14:19

标签: api streaming pyspark suds

我获得了一个API网址和一个方法getUserPost(),它返回了我的数据处理功能所需的数据。我可以使用suds.client中的客户端获取数据,如下所示:

from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import

url = 'url'
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('filter')
d = ImportDoctor(imp)
client = Client(url, doctor=d)
tempResult = client.service.getUserPosts(user_ids = '',date_from='2016-07-01 03:19:57', date_to='2016-08-01 03:19:57', limit=100, offset=0)

现在,每个tempResult将包含100条记录。我想将给定API url中的数据流式传输到RDD以进行并行处理。但是,在阅读pySpark.Streaming documentation后,我找不到自定义数据源的流方法。任何人都可以给我一个理想的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

经过一段时间的挖掘,我发现了如何解决问题。我使用了Kafka Streaming。基本上,您需要从给定的API创建生产者,指定主题和端口进行通信。然后消费者听取特定主题和端口以开始流式传输数据。

请注意,Producer和Consumer必须作为不同的线程工作才能存档实时流。