【问题标题】:How to access SparkContext from SparkSession instance?如何从 SparkSession 实例访问 SparkContext?
【发布时间】:2018-08-20 23:22:55
【问题描述】:

我在 PySpark 中导入SparkSession 如下:

from pyspark.sql import SparkSession

然后我创建SparkSession:

spark = SparkSession.builder.appName("test").getOrCreate()

并尝试访问SparkContext:

spark.SparkContext.broadcast(...)

但是,我收到 SparkContext 不存在的错误。如何访问它以设置broadcast 变量?

【问题讨论】:

  • @Prateek:这不是我要问如何使用 spark 访问 SparkContext 的问题,spark 是 SparkSession 的实例。
  • from pyspark import SparkContext as sc 如果它不起作用,你没有在环境变量中设置 pyspark 或者 spark 服务器没有运行
  • @Prateek:不,它不会起作用,因为它应该与创建的SparkSession有关。我自己解决了这个问题 spark.sparkContext.broadcast(...) 而不是 spark.SparkContext.broadcast(...)
  • 太棒了!我以为你一般指的是 sc

标签: python apache-spark pyspark


【解决方案1】:

假设您有一个 spark 会话

spark_session = SparkSession \
    .builder \
    .enableHiveSupport() \
    .getOrCreate()

Spark 上下文可以使用来推断

spark_context = spark_session._sc

spark_context = spark_session.sparkContext

【讨论】:

    【解决方案2】:

    你几乎没看错,开头是小写的s:

    >>> spark.sparkContext
    <SparkContext master=local[*] appName=PySparkShell>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多