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.
我需要在我的驱动程序中创建一个广播变量,并在单独文件的 class 中使用它。
例如我在驱动程序中有这个:
public static final Relation[] relations = {
Test1.getRelationSigleton(),
Test2.getRelationSigleton()
};
relationsBroadcast = ctx.broadcast(关系);
在地图步骤中,我需要得到这个:
private Relation[] relations = relationsBroadcast.value();
问题是它无法编译,因为 relationsBroadcast 尚未在新文件的范围内声明。
我现在的解决办法是把map步骤和驱动放在同一个文件里,但是看起来很乱,想搬出去
正如@rhernando 在评论中提到的那样,这样做的方法是使用对主变量的静态引用 class.