【问题标题】:Spark: get JavaSparkContext that was created in another classSpark:获取在另一个类中创建的 JavaSparkContext
【发布时间】:2014-11-19 17:41:32
【问题描述】:

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

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

【问题讨论】:

    标签: java mapreduce apache-spark


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 1970-01-01
      • 2016-05-08
      • 2018-11-02
      • 1970-01-01
      • 2016-12-03
      • 2014-07-23
      • 2018-03-30
      • 2015-03-20
      相关资源
      最近更新 更多