0
Java RDD APIを使用してsparkブロードキャスト変数を処理する必要があります。これはこれまでの私のコードです:Spark Javaのブロードキャスト変数
これは動作するかどうかを確認するためのサンプルコードです。私の場合、私は2つのファイルを処理する必要がありますcsv
。
SparkConf conf = new SparkConf().setAppName("BroadcastVariable").setMaster("local");
JavaSparkContext ctx = new JavaSparkContext(conf);
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(9, "ccc");
Broadcast<Map<Integer, String>> broadcastVar = ctx.broadcast(map);
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(9);
JavaRDD<Integer> listrdd = ctx.parallelize(list);
JavaRDD<Object> mapr = listrdd.map(x -> broadcastVar.value());
System.out.println(mapr.collect());
、それはこのような出力出力します
[{1=aa, 2=bb, 9=ccc}, {1=aa, 2=bb, 9=ccc}, {1=aa, 2=bb, 9=ccc}]
を、私の要件は次のとおりです。
[{aa, bb, ccc}]
それは私に必要な方法のように行うことは可能ですか?