Operaciones con diccionarios en Apache Spark en Python

Visualizar un diccionario

a = sc.parallelize(['a','b','c','a'])
b = sc.parallelize([1,2,3,4])
rdd_kv = a.zip(b)
print (rdd_kv.collect())
[('a', 1), ('b', 2), ('c', 3), ('a', 4)]

Acceder a las claves de un diccionario

print (rdd_kv.keys().collect())
['a', 'b', 'c', 'a']

Acceder a los valores de un diccionario

print (rdd_kv.values().collect())
[1, 2, 3, 4]

Multiplicar por dos los valores de un diccionario

print (rdd_kv.mapValues(lambda x : x*2).collect())
[('a', 2), ('b', 4), ('c', 6), ('a', 8)]

Sumar por llave los valores de un diccionario

print (dd_kv.reduceByKey(lambda x,y: x + y).collect())
[('a', 5), ('c', 3), ('b', 2)]

Ordenar los valores de un diccionario

print (rdd_kv.sortByKey(False).collect())
print (rdd_kv.sortByKey(True).collect())

[('c', 3), ('b', 2), ('a', 1), ('a', 4)]
[('a', 1), ('a', 4), ('b', 2), ('c', 3)]

Otros artículos que pueden ser de interés:

Autor: Diego Calvo