2016-08-26 1 views
0

J'ai un rdd de paires de listes de clés où la valeur d'une clé donnée est une liste d'éléments comme indiqué ci-dessous:Pyspark - A partir d'une paire de clés, récupérer uniquement la clé et le premier élément de la liste

a = [('json1', ['9', 3]), ('json2', ['5', 2])] 

d'un, je voudrais finir avec seulement la clé et le premier élément de la liste comme suit:

b = [('json1', '9'), ('json2', '5')] 

Quelles opérations dans pyspark dois-je utiliser pour obtenir cela?

Répondre

0

C'est très simple. Vous n'avez besoin que d'une opération de carte.

a = sc.parallelize([('json1', ['9', 3]), ('json2', ['5', 2])]) 
b=a.map(lambda x:(x[0],x[1][0])) 
print(b.take(2)) 

sortie

[('json1', '9'), ('json2', '5')] 

vous pouvez lire pyspark docs à propos de la carte et d'autres opérations.