启动SparkSession的区别

时间:2018-06-25 09:28:11

标签: 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 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)

1 个答案:

答案 0 :(得分:1)

差异非常细微。

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

  2. 使用SessionBuilder方法,您可以直接与Hive,Spark Streaming交互,因为所有API均已与其集成。不需要为每个API创建不同的上下文。

请参阅Spark Documentation

请参阅SparkContext vs SparkSession