Spark用另一个值替换rdd字段值

时间:2016-12-30 01:18:48

标签: apache-spark pyspark apache-kafka spark-streaming rdd

我是Spark新手。

我可以使用以下方法查看弹性搜索数据库中第一个RDD的内容:

print(es_rdd.first())
>>>(u'1', {u'name': u'john'})

我还可以使用以下方法获取Dstream所需的值:

kvs = KafkaUtils.createDirectStream(ssc, [topic], {"metadata.broker.list":brokers})
name=kvs.map(lambda x: x[1])
name.pprint()
>>>>robert

我打算用“robert”替换rdd“name”:“john”,然后使用saveAsNewAPIHadoopFile()

将新的rdd插入elasticsearch中

我该怎么做? 有没有办法将“罗伯特”映射到一个新的rdd?像...这样的东西。

new_rdd=es_rdd.map(lambda item: {item[0]:name})

由于

1 个答案:

答案 0 :(得分:2)

我们可以根据索引列表将RDD的一部分替换为另一个RDD。例如,将(RDD)中的元素从1,2,3,4替换为2,3,4,4。

INV_LEDGERS

结果显示[2,3,4,4]