Java 单独文件中的 Spark 广播变量

Java Spark broadcast variable in separate file

我需要在我的驱动程序中创建一个广播变量,并在单独文件的 class 中使用它。

例如我在驱动程序中有这个:

public static final Relation[] relations = {
     Test1.getRelationSigleton(),
     Test2.getRelationSigleton()
};

relationsBroadcast = ctx.broadcast(关系);

在地图步骤中,我需要得到这个:

private Relation[] relations = relationsBroadcast.value();

问题是它无法编译,因为 relationsBroadcast 尚未在新文件的范围内声明。

我现在的解决办法是把map步骤和驱动放在同一个文件里,但是看起来很乱,想搬出去

正如@rhernando 在评论中提到的那样,这样做的方法是使用对主变量的静态引用 class.