在rdd.foreach pyspark上应用函数

时间:2016-11-12 04:26:00

标签: python apache-spark foreach pyspark rdd

我正在尝试在rdd的每一行上应用send_active_mq。

def send_to_active_mq(json_string) :
   k = str(json_string)
   conn.send(body=k,destination='dwEmailsQueue2')

json_rdd_to_send.foreach(send_to_active_mq)

我的应用方式与spark文档中的建议相同 http://spark.apache.org/docs/1.1.1/api/python/pyspark.rdd.RDD-class.html#foreach

但是我收到以下错误。

AttributeError: 'builtin_function_or_method' object has no attribute '__code__'

我在这里做的事情有根本错吗?

1 个答案:

答案 0 :(得分:1)

这可能与conn对象相关联。尝试:

def send_to_active_mq(json_strings):
    conn = ... # Initalize connection
    for json_string in json_strings:
        conn.send(body=str(json_string) ,destination='dwEmailsQueue2')

json_rdd_to_send.foreachPartition(send_to_active_mq)