2016-04-29 1 views
0

J'ai une liste de paires de clés, telles que Liste ((A, 1), (B, 2), (C, 3)) dans la mémoire de tas. Comment puis-je paralléliser cette liste pour créer un JavaPairRDD? SCALA:. paires val = sc.parallelize (Liste ((A, 1), (B, 2), (C, 3)) De même, est-il possible avec l'API javaComment paralléliser une liste de paires de valeurs clés à JavaPairRDD dans Apache spark Java API?

+0

Est-il arrivé que vous RFTM? – eliasah

+0

J'ai référé le manuel. Je sais comment le faire avec scala et python. est-il possible de le faire avec Java? –

Répondre

1

J'ai trouvé la réponse. Tout d'abord magasin la liste des tuples dans JavaRDD, puis la convertir en JavaPairRDD

List<Tuple2> data = Arrays.asList(new Tuple2("panda", 0),new Tuple2("panda", 1)); 
    JavaRDD rdd = sc.parallelize(data); 
    JavaPairRDD pairRdd = JavaPairRDD.fromJavaRDD(rdd); 

Jetez un oeil à ce answer

0

collections parallélisés? sont créés en appelant la méthode de paralléliser de JavaSparkContext sur une collection existante dans votre programme pilote. les éléments de la collection sont copiés pour former un ensemble de données distribué qui peut fonctionner en parallèle.

List data = ......; 
JavaRDD rdd = sc.parallelize(data); 
+0

En utilisant les lignes ci-dessus, vous ne pouvez stocker que les éléments et non les paires de valeurs clés. Et aussi j'essaye de créer JavaPairRDD pas JavaRDD –

+1

Bien que ce code puisse répondre à la question, fournissant contexte supplémentaire concernant _why_ et/ou _how_ il répond la question améliorerait significativement sa valeur à long terme . S'il vous plaît [modifier] votre réponse pour ajouter quelques explications. –

+0

@SandeepVeerlapati si le type de votre liste est tuple, je pense que l'étincelle va créer pairedRDD – banjara

0
Convert Tuple into List with below code snippet. 
Tuple2<Sensor, Integer> tuple = new Tuple2<Sensor, Integer>(arg0._2, 1); 
       List<Tuple2<Sensor, Integer>> list = new ArrayList<Tuple2<Sensor, Integer>>(); 
       list.add(tuple); 
1

Je peux voir celui-ci travaille pour moi

sc.parallelizePairs(Arrays.asList(new Tuple2("123","123")));