Spark:获取在另一个类中创建的JavaSparkContext



我有由几个类组成的火花应用程序。我在主类中创建JavaSparkContext,并用它来从hdfs(sc.textFile)获取数据。然后将此数据传递给正在处理它的另一个对象。在处理过程中,我再次需要上下文来从列表创建RDD。我不想在 API 中添加一个参数来将上下文对象从主类传递到另一个。是否有任何其他选项,例如使用某种静态方法获取现有上下文?

附言在网络上搜索没有帮助。

通过向类构造函数提供配置来创建SparkContext实例。因此,如果要在程序的另一部分中使用该实例,则需要以某种方式传递相同的引用。

将上下文作为参数传递给作业是一个有效的选项,也是我的首选方式。确保使该参数瞬态,以避免它被闭包"捕获"。

您还可以使用经典的"Singleton"模式,该模式使用封装上下文创建的类,并提供静态方法来获取单一实例引用。

在所有情况下,您都需要提供适合您特定需求的ctx共享机制。

相关内容

  • 没有找到相关文章

最新更新