Apache spark 在Spark java中访问广播变量

Apache spark 在Spark java中访问广播变量,apache-spark,apache-spark-sql,lookup,rdd,broadcast,Apache Spark,Apache Spark Sql,Lookup,Rdd,Broadcast,我需要使用JavaRDDAPI处理spark广播变量。这是我迄今为止尝试过的代码: 这是检查其是否工作的唯一示例代码?在我的情况下,我需要处理两个csv文件 SparkConf conf = new SparkConf().setAppName("BroadcastVariable").setMaster("local"); JavaSparkContext ctx = new JavaSparkContext(conf); Map&l

我需要使用JavaRDDAPI处理spark广播变量。这是我迄今为止尝试过的代码:

这是检查其是否工作的唯一示例代码?在我的情况下,我需要处理两个
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());
我的要求是:

 [{aa, bb, ccc}]
有可能以我所需要的方式来做类似的事情吗?

我使用了
javarddmapr=listrdd.map(x->broadcastVar.value().get(x))
而不是
javarddmapr=listrdd.map(x->broadcastVar.value())

它现在可以工作了。

我使用了
javarddmapr=listrdd.map(x->broadcastVar.value().get(x))
而不是
javarddmapr=listrdd.map(x->broadcastVar.value())


它现在正在工作。

这是在集群中工作的吗,我有相同的要求,但它没有按预期工作。withColumn(“五”,lit((Map)lookUpMapBcVar.getValue()).get(5))。withColumn(“地图”lookUpMapBcVar.getValue()).get(col(“地板”)和Column(“五,lit”),lit((Map)lookUpMapBcVar.getValue()).get(lit(5.cast(DataTypes.IntegerType));除了这个--(lookUpMapBcVar.getValue()).get(5))--什么都不起作用…这个在集群中起作用了吗,我有相同的要求,但它没有按预期工作。withColumn(“五”,lit((Map)lookUpMapBcVar.getValue()).get(5))。withColumn(“Map_code 3”,lit((Map)lookUpMapBcVar.getValue()).get(col)((floor_code 3_int)))).withColumn(“five_lit”,lit((Map)lookUpMapBcVar.getValue()).get(lit(5).cast(DataTypes.IntegerType)));除了这个--(lookUpMapBcVar.getValue()).get(5))--什么都不起作用。。。
 [{aa, bb, ccc}]