我对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)
答案 0 :(得分:1)
差异非常细微。
SparkContext方法允许您创建普通的sparksession。您不能直接与其他API交互。如果要与其他API交互,则必须创建不同的上下文。
使用SessionBuilder方法,您可以直接与Hive,Spark Streaming交互,因为所有API均已与其集成。不需要为每个API创建不同的上下文。