Dstream输出到Rabbitmq

时间:2016-10-18 15:23:58

标签: python apache-spark rabbitmq spark-streaming

我正在使用spark 2.0(python)。我正在尝试将输出流发送到Rabbitmq。以下是我的实施,

def sendPartition(iter):
    connection = pika.BlockingConnection(pika.URLParameters('amqp://user:pass@ip:5672/'))
    channel = connection.channel()
    for record in iter:
        channel.basic_publish(exchange='ExchangePostingUpdate',
                              routing_key='PostingUpdate',
                              body=json.dumps(record)
                              )

    channel.close()

data_stream.foreachRDD(lambda rdd: rdd.foreachPartition(lambda partition:sendPartition(partition,rabbitconnection)))

工作正常。但正如我们在这里看到的那样,建立连接并为每个分区关闭它。有没有更好的方法呢?

我尝试建立连接并传递给sendPartition(iter,conn),但我没有工作。

0 个答案:

没有答案