2016-04-16 1 views
0

J'ai RDD suivant dans mon code Java.Apache Spark Convertir la collection de RDD en RDD unique JAVA

(1, List(1596, 1617, 1929, 2399, 2674)) 
(2, List(1702, 1785, 1933, 2054, 2583, 2913)) 
(3, List(1982, 2002, 2048, 2341, 2666)) 

Ce que j'essaye de faire est de créer un autre RDD. Le contenu devrait ressembler à ceci. (Pas nécessairement en même ordre)

1596 
1617 
1929 
2399 
2674 
1702 
1785 
1933 
2054 
2583 
2913 
1982 
2002 
2048 
2341 
2666 

Je ne sais pas comment faire transformer un RDD (JavaRDD<ArrayList<String>>) avec collection d'objets à simple RDD (JavaRDD<String>) avec tous les objets qu'il contient. Je serais très reconnaissant si quelqu'un pouvait me diriger vers une ressource JAVA.

+1

Cela fera en scala. 'val rdd1 = sc.parallelize (Liste ((1, Liste (1596, 1617, 1929, 2399, 2674)), (2, Liste (1702, 1785, 1933, 2054, 2583, 2913)), (3, Liste (1982, 2002, 2048, 2341, 2666)))) val rdd2 = rdd1.flatMap (x => x._2) ' – WoodChopper

Répondre

0

Vous pouvez faire la même chose dans scala comme suit

val data = List((1, List(1596, 1617, 1929, 2399, 2674)), 
    (2, List(1702, 1785, 1933, 2054, 2583, 2913)), 
    (3, List(1982, 2002, 2048, 2341, 2666))) 

val rdd_data = sc.parallelize(data) 
val rdd_flattened = rdd_data.flatMap((index, value) => value)