Python 3.x 启动SparkSession的区别

Python 3.x 启动SparkSession的区别,python-3.x,apache-spark,pyspark,Python 3.x,Apache Spark,Pyspark,我对Spark比较陌生,但我可以看到这两种方法都会启动Spark会话。有人能强调一下在这两种方法中启动spark会话的区别和局限性吗?为什么有两种方法可以做到这一点 另一种方法是 以下是代码: # Find path to PySpark. import collections import findspark findspark.init() # Import PySpark and initialize SparkContext object. import pyspark from py

我对Spark比较陌生,但我可以看到这两种方法都会启动Spark会话。有人能强调一下在这两种方法中启动spark会话的区别和局限性吗?为什么有两种方法可以做到这一点

另一种方法是

以下是代码:

# Find path to PySpark.
import collections
import findspark
findspark.init()

# Import PySpark and initialize SparkContext object.
import pyspark
from pyspark.sql import SparkSession

conf = pyspark.SparkConf().setMaster("local[*]").setAppName("RatingsHistogram")
sc = pyspark.SparkContext(conf = conf)
spark = SparkSession(sc)

print('The Spark Version used is "{0}"\n\
The python version used is "{1}"\n\
The default parallelism is "{2}"\n\
The default number of partitions is "{3}"'.format(sc.version,sc.pythonVer,sc.defaultParallelism,sc.defaultMinPartitions))
另一个代码是

# Find path to PySpark.
import collections
import findspark
findspark.init()

# Import PySpark and initialize SparkContext object.
import pyspark
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('Basics').getOrCreate()
print(spark.version)

这种差别非常细微

  • SparkContext方法允许您创建普通sparksession。您不能直接与其他API交互。如果要与其他API交互,必须创建不同的上下文

  • 使用SessionBuilder方法,您可以直接与配置单元、Spark流进行交互,因为所有API都与之集成。不需要为每个API创建不同的上下文

  • 请参阅


    请参考

    我同意你的看法。我对我的答案补充了几点。如果你觉得有帮助,你可以接受答案!明确地以一种清晰的方式回答了这个问题,如果能扩展您的答案并添加更多的资源,让更多的人发现它是有益的,那将是很好的。谢谢!