任何人都可以解释SparkContext
,SQLContext
,HiveContext
和SparkSession
EntryPoints与每个用户的区别。
答案 0 :(得分:2)
SparkContext用于Spark1.x和Spark2.x上的基本RDD
API
SparkSession用于Spark2.x上的DataFrame
API和Struct Streaming
API
SQLContext& HiveContext用于Spark1.x上的DataFrame
API,不推荐使用Spark2.x
答案 1 :(得分:0)
Spark Context是Spark API中的Class,它是构建spark应用程序的第一个阶段。 spark上下文的功能是在RAM中创建内存,我们将其称为驱动程序内存,分配执行程序和内核的数量,简而言之就是集群管理。 Spark Context可用于创建RDD和共享变量。 SparkContext是一个访问它的类,我们需要创建它的对象。
这样我们就可以创建Spark Context :: var sc = new SparkContext()
Spark Session这是自Spark 2.x以来添加的新对象,它取代了Sql Context和Hive Context。 之前我们有两个选项,比如一个是Sql Context,它是在Dataframe上进行sql操作的方法,第二个是Hive Context,它管理与Hive连接相关的东西,并从hive表中获取/插入数据。
从2.x开始我们可以为Dataframe上的SQL操作创建SparkSession,如果你有任何与Hive相关的工作,只需调用Method enablehivesupport(),然后就可以将SparkSession用于Dataframe和hive相关的SQL操作。 这样我们就可以在Dataframe上为Sql操作创建SparkSession val sparksession = SparkSession.builder()。getOrCreate();
第二种方法是在Dataframe和Hive Operation上为Sql操作创建SparkSession。
val sparkSession = SparkSession.builder()。enableHiveSupport()。getOrCreate()