Я пытаюсь преобразовать фрейм данных с несколькими столбцами в словарь. Для этого я сначала проверил, могу ли я получить доступ к значениям из фрейма данных, и смог это сделать.
>>> dmap = {}
>>> der.show()
+----------+-------------------+
| tablename|incremental_log_ids|
+----------+-------------------+
|db.t1 | 1|
|db.t2 | 2|
|db.t3 | 3|
+----------+-------------------+
>>> der.rdd.map(lambda x: (x[0], x[1])).collect()
[('db.t1', '1'), ('db.t2', '2'), ('db.t3', '3')]
Но когда я попытался добавить значения в словарь с помощью лямбда-функции, как показано ниже, Я не вижу пары значений ключа внутри словаря после завершения итерации.
>>> def addk(k:str, v:str):
... dmap[k] = v
...
>>> der.rdd.map(lambda x: addk(x[0], x[1]))
PythonRDD[117] at RDD at PythonRDD.scala:53
>>>
>>> dmap
{}
Как видно из последнего оператора, dmap не показывает пары значений ключа после завершения итерации. , Может ли кто-нибудь сообщить мне, если я сделал здесь какую-либо ошибку и как я могу исправить ее?