PySpark 中的 SparkSession 和 SparkContext 启动

Posted

技术标签:

【中文标题】PySpark 中的 SparkSession 和 SparkContext 启动【英文标题】:SparkSession and SparkContext initiation in PySpark 【发布时间】:2020-08-11 16:53:48 【问题描述】:

我想知道 Scala 中以下代码的 PySpark 等价物。我正在使用数据块。我需要与以下相同的输出:-

创建新的 Spark 会话并输出会话 id (SparkSession@123d0e8)

val new_spark = spark.newSession()

**Output** 
new_spark: org.apache.spark.sql.SparkSession = org.apache.spark.sql.SparkSession@123d0e8

查看 SparkContext 并输出 SparkContext id (SparkContext@2dsdas33)

new_spark.sparkContext
**Output** 
org.apache.spark.SparkContext = org.apache.spark.SparkContext@2dsdas33

【问题讨论】:

参考 - ***.com/questions/39780792/… 【参考方案1】:

非常相似。如果您已经有一个会话并想打开另一个会话,您可以使用

my_session = spark.newSession()

print(my_session)

这将产生我认为您正在尝试创建的新会话对象

<pyspark.sql.session.SparkSession object at 0x7fc3bae3f550>

spark 是一个已经在运行的会话对象,因为您使用的是 databricks 笔记本

【讨论】:

感谢这工作!如何在 PySpark 中打印 sparkContext? 你可以运行print(my_session.sparkContext)【参考方案2】:

SparkSession 可以创建为http://spark.apache.org/docs/2.0.0/api/python/pyspark.sql.html

>>> from pyspark.sql import SparkSession
>>> from pyspark.conf import SparkConf
>>> SparkSession.builder.config(conf=SparkConf())

>>> from pyspark.sql import SparkSession
>>> spark = SparkSession.builder.appName('FirstSparkApp').getOrCreate()

【讨论】:

以上是关于PySpark 中的 SparkSession 和 SparkContext 启动的主要内容,如果未能解决你的问题,请参考以下文章

`pyspark.sql.SparkSession.sql` 和 `SQLContext.read.format()` 有啥区别?

带有架构的 pyspark.sql SparkSession load() :架构中的非字符串类型字段使所有值都为空

PySpark数据分析基础:pyspark.sql.SparkSession类方法详解及操作+代码展示

PySpark:无法创建SparkSession。(Java Gateway Error)

创建 SparkSession 的 Spark 3.0.0 错误:pyspark.sql.utils.IllegalArgumentException:<exception str() fail

在 pyspark sparksession 中检查 Hive 中是不是存在表