SparkContext、JavaSparkContext、SQLContext 和 SparkSession 之间的区别?
Difference between SparkContext, JavaSparkContext, SQLContext, and SparkSession?
SparkContext,
JavaSparkContext,
SQLContext
和SparkSession
有什么区别?
- 是否有任何方法可以使用
SparkSession
转换或创建上下文?
- 我可以使用一个条目完全替换所有上下文吗
SparkSession
?
SQLContext
、SparkContext
、JavaSparkContext
中的所有函数是否也在SparkSession
中?
parallelize
等一些函数在 SparkContext
和 JavaSparkContext
中有不同的行为。他们在 SparkSession
中的表现如何?
如何使用 SparkSession
创建以下内容?
RDD
JavaRDD
JavaPairRDD
Dataset
有没有一种方法可以将 JavaPairRDD
转换为 Dataset
或将 Dataset
转换为 JavaPairRDD
?
来自branch-2.1下spark源码的解释
SparkContext:
Spark 功能的主要入口点。 SparkContext 表示与 Spark 的连接
集群,并可用于在该集群上创建 RDD、累加器和广播变量。
每个 JVM 只能激活一个 SparkContext。您必须先 stop()
活动的 SparkContext
创建一个新的。这个限制最终可能会被取消;有关详细信息,请参阅 SPARK-2243。
JavaSparkContext:
Java 友好版本的 [[org.apache.spark.SparkContext]] returns
[[org.apache.spark.api.java.JavaRDD]]s 并使用 Java 集合而不是 Scala 集合。
每个 JVM 只能激活一个 SparkContext。您必须先 stop()
活动的 SparkContext
创建一个新的。这个限制最终可能会被取消;有关详细信息,请参阅 SPARK-2243。
SQLContext:
在 Spark 1.x.
中处理结构化数据(行和列)的入口点
从 Spark 2.0 开始,它被 [[SparkSession]] 取代。但是,我们保留 class
这里是为了向后兼容。
SparkSession:
使用 Dataset 和 DataFrame API.
对 Spark 进行编程的入口点
sparkContext
是 Scala 实现入口点,JavaSparkContext
是 sparkContext
.
的 java 包装器
SQLContext
是SparkSQL的入口点,可以从sparkContext
接收。在2.x.x之前,RDD、DataFrame和Data-set是三种不同的数据abstractions.Since Spark 2.x.x,三种数据抽象统一,SparkSession
是Spark的统一入口
另外需要注意的是,RDD 用于非结构化数据、强类型数据,DataFrames 用于结构化和松散类型数据。你可以
Is there any method to convert or create Context using Sparksession ?
是的。它的 sparkSession.sparkContext()
和 SQL、sparkSession.sqlContext()
Can I completely replace all the Context using one single entry SparkSession ?
是的。您可以从 sparkSession.
获取相应的上下文
Does all the functions in SQLContext, SparkContext,JavaSparkContext etc are added in SparkSession?
不直接。您必须获得各自的上下文并利用 it.something 之类的向后兼容性
How to use such function in SparkSession?
获取各自的上下文并加以利用。
How to create the following using SparkSession?
- 可以从
sparkSession.sparkContext.parallelize(???)
创建 RDD
- JavaRDD 同样适用于此,但在 java 实现中
- JavaPairRDD
sparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
- Dataset 如果是结构化数据,sparkSession returns 是什么Dataset。
Spark Context 是 Spark API 中的 Class,这是构建 spark 应用程序的第一阶段。 spark 上下文的功能是在 RAM 中创建内存,我们称之为驱动程序内存,执行器和内核数量的分配简而言之就是集群管理。 Spark Context 可用于创建 RDD 和共享变量。要访问它,我们需要创建它的对象。
这样我们就可以创建 Spark Context :: var sc=new SparkContext()
Spark Session 这是自 spark 2.x 以来添加的新对象,它替代了 Sql 上下文和 Hive 上下文。
早些时候我们有两个选项,一个是 Sql 上下文,这是对 Dataframe 进行 sql 操作的方法,第二个是 Hive 上下文,它管理 Hive 连接相关的东西和 fetch/insert 数据 from/to 配置单元表。
自从 2.x 出现以来,我们可以为 Dataframe 上的 SQL 操作创建 SparkSession,如果您有任何与 Hive 相关的工作,只需调用方法 enablehivesupport() 然后您就可以为两者使用 SparkSession Dataframe 和 hive 相关的 SQL 操作。
这样我们就可以为 Dataframe
上的 Sql 操作创建 SparkSession
val sparksession=SparkSession.builder().getOrCreate();
第二种方法是为 Sql Dataframe 操作和 Hive 操作创建 SparkSession。
val sparkSession=SparkSession.builder().enableHiveSupport().getOrCreate()
我只说Spark版本2.x。
SparkSession: 它是您的 spark 应用程序的主要入口点。对于 运行 你的 spark 上的任何代码,这是你应该创建的第一件事。
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appName("Word Count")\
.config("spark.some.config.option", "some-value")\
.getOrCreate()
SparkContext: 它是 SparkSession 的内部对象 (属性)。它用于与 Low-Level API
交互 通过 SparkContext
您可以创建 RDD
、accumlator
和 Broadcast variables
。
在大多数情况下,您不需要 SparkContext
。你可以从 SparkSession
得到 SparkContext
val sc = spark.sparkContext
Spark 上下文:
自从 Spark 1.x 以来,Spark SparkContext 是 Spark 的入口点并在 org.阿帕奇。 spark 包,用于以编程方式在集群上创建 Spark RDD、累加器和广播变量。它的对象 sc 是 spark-shell 中可用的默认变量,它可以使用 SparkContext class.
以编程方式创建
SparkContext是spark执行环境的客户端。
SparkContext 是 spark 执行作业的入口点。
SparkContext作为spark应用的master。
希望您会发现这个 Apache SparkContext Examples 网站有用。
SparkSession:
从Spark 2.0开始,SparkSession成为Spark与RDD、DataFrame、Dataset协同工作的入口。在 2.0 之前,SparkContext 曾经是一个入口点。在这里,我将主要通过定义和描述如何创建 Spark Session 以及使用来自 spark-shell.
的默认 Spark Session ‘spark’ 变量来解释什么是 SparkSession。
Apache spark2.0以后,spark session是spark应用的新入口。
Spark 上下文提供的所有功能都可以在 Spark 会话中使用。
spark session 提供 API(s) 来处理数据集和数据帧。
Spark2.0之前:
Spark 上下文是 Spark 作业的入口点。
RDD 是当时主要的 API 之一,它是使用 spark Context 创建和操作的。
对于其他 API,需要不同的上下文 - 对于 SQL,需要 SQL 上下文。
您可以在 Apache SparkSession 上找到更多实时示例。
SQL上下文:
在 Spark 版本 1.0 中,SQLContext (org.apache.spark.sql.SQLContext ) 是 SQL 的入口点,以便处理结构化数据(行和列),但是 2.0 SQLContext 已被替换为 SparkSession。
Apache Spark SQLContext 是 SparkSQL 的入口点,SparkSQL 是 Spark 1.x 中用于结构化数据(行和列)的 Spark 模块。加工。
Spark SQL上下文已初始化。
apache-spark SQL context 是 Spark SQL 的入口点,可以从 spark context 接收
JavaSparkContext:
JavaJAVARDD 的 SparkContext 与上面相同,但在 java 实现中。
JavaSparkContext Java 的 [[org.apache.spark.SparkContext]] 友好版本 returns [[org.apache.spark.api.java.JavaRDD]] 并与 Java 集合而不是 Scala 集合。
SparkContext,
JavaSparkContext,
SQLContext
和SparkSession
有什么区别?- 是否有任何方法可以使用
SparkSession
转换或创建上下文? - 我可以使用一个条目完全替换所有上下文吗
SparkSession
? SQLContext
、SparkContext
、JavaSparkContext
中的所有函数是否也在SparkSession
中?parallelize
等一些函数在SparkContext
和JavaSparkContext
中有不同的行为。他们在SparkSession
中的表现如何?如何使用
SparkSession
创建以下内容?RDD
JavaRDD
JavaPairRDD
Dataset
有没有一种方法可以将 JavaPairRDD
转换为 Dataset
或将 Dataset
转换为 JavaPairRDD
?
来自branch-2.1下spark源码的解释
SparkContext: Spark 功能的主要入口点。 SparkContext 表示与 Spark 的连接 集群,并可用于在该集群上创建 RDD、累加器和广播变量。
每个 JVM 只能激活一个 SparkContext。您必须先 stop()
活动的 SparkContext
创建一个新的。这个限制最终可能会被取消;有关详细信息,请参阅 SPARK-2243。
JavaSparkContext: Java 友好版本的 [[org.apache.spark.SparkContext]] returns [[org.apache.spark.api.java.JavaRDD]]s 并使用 Java 集合而不是 Scala 集合。
每个 JVM 只能激活一个 SparkContext。您必须先 stop()
活动的 SparkContext
创建一个新的。这个限制最终可能会被取消;有关详细信息,请参阅 SPARK-2243。
SQLContext: 在 Spark 1.x.
中处理结构化数据(行和列)的入口点从 Spark 2.0 开始,它被 [[SparkSession]] 取代。但是,我们保留 class 这里是为了向后兼容。
SparkSession: 使用 Dataset 和 DataFrame API.
对 Spark 进行编程的入口点sparkContext
是 Scala 实现入口点,JavaSparkContext
是 sparkContext
.
SQLContext
是SparkSQL的入口点,可以从sparkContext
接收。在2.x.x之前,RDD、DataFrame和Data-set是三种不同的数据abstractions.Since Spark 2.x.x,三种数据抽象统一,SparkSession
是Spark的统一入口
另外需要注意的是,RDD 用于非结构化数据、强类型数据,DataFrames 用于结构化和松散类型数据。你可以
Is there any method to convert or create Context using Sparksession ?
是的。它的 sparkSession.sparkContext()
和 SQL、sparkSession.sqlContext()
Can I completely replace all the Context using one single entry SparkSession ?
是的。您可以从 sparkSession.
获取相应的上下文Does all the functions in SQLContext, SparkContext,JavaSparkContext etc are added in SparkSession?
不直接。您必须获得各自的上下文并利用 it.something 之类的向后兼容性
How to use such function in SparkSession?
获取各自的上下文并加以利用。
How to create the following using SparkSession?
- 可以从
sparkSession.sparkContext.parallelize(???)
创建 RDD
- JavaRDD 同样适用于此,但在 java 实现中
- JavaPairRDD
sparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
- Dataset 如果是结构化数据,sparkSession returns 是什么Dataset。
Spark Context 是 Spark API 中的 Class,这是构建 spark 应用程序的第一阶段。 spark 上下文的功能是在 RAM 中创建内存,我们称之为驱动程序内存,执行器和内核数量的分配简而言之就是集群管理。 Spark Context 可用于创建 RDD 和共享变量。要访问它,我们需要创建它的对象。
这样我们就可以创建 Spark Context :: var sc=new SparkContext()
Spark Session 这是自 spark 2.x 以来添加的新对象,它替代了 Sql 上下文和 Hive 上下文。 早些时候我们有两个选项,一个是 Sql 上下文,这是对 Dataframe 进行 sql 操作的方法,第二个是 Hive 上下文,它管理 Hive 连接相关的东西和 fetch/insert 数据 from/to 配置单元表。
自从 2.x 出现以来,我们可以为 Dataframe 上的 SQL 操作创建 SparkSession,如果您有任何与 Hive 相关的工作,只需调用方法 enablehivesupport() 然后您就可以为两者使用 SparkSession Dataframe 和 hive 相关的 SQL 操作。
这样我们就可以为 Dataframe
上的 Sql 操作创建 SparkSessionval sparksession=SparkSession.builder().getOrCreate();
第二种方法是为 Sql Dataframe 操作和 Hive 操作创建 SparkSession。
val sparkSession=SparkSession.builder().enableHiveSupport().getOrCreate()
我只说Spark版本2.x。
SparkSession: 它是您的 spark 应用程序的主要入口点。对于 运行 你的 spark 上的任何代码,这是你应该创建的第一件事。
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appName("Word Count")\
.config("spark.some.config.option", "some-value")\
.getOrCreate()
SparkContext: 它是 SparkSession 的内部对象 (属性)。它用于与 Low-Level API
交互 通过 SparkContext
您可以创建 RDD
、accumlator
和 Broadcast variables
。
在大多数情况下,您不需要 SparkContext
。你可以从 SparkSession
SparkContext
val sc = spark.sparkContext
Spark 上下文:
自从 Spark 1.x 以来,Spark SparkContext 是 Spark 的入口点并在 org.阿帕奇。 spark 包,用于以编程方式在集群上创建 Spark RDD、累加器和广播变量。它的对象 sc 是 spark-shell 中可用的默认变量,它可以使用 SparkContext class.
以编程方式创建SparkContext是spark执行环境的客户端。 SparkContext 是 spark 执行作业的入口点。 SparkContext作为spark应用的master。
希望您会发现这个 Apache SparkContext Examples 网站有用。
SparkSession:
从Spark 2.0开始,SparkSession成为Spark与RDD、DataFrame、Dataset协同工作的入口。在 2.0 之前,SparkContext 曾经是一个入口点。在这里,我将主要通过定义和描述如何创建 Spark Session 以及使用来自 spark-shell.
的默认 Spark Session ‘spark’ 变量来解释什么是 SparkSession。Apache spark2.0以后,spark session是spark应用的新入口。 Spark 上下文提供的所有功能都可以在 Spark 会话中使用。 spark session 提供 API(s) 来处理数据集和数据帧。 Spark2.0之前:
Spark 上下文是 Spark 作业的入口点。 RDD 是当时主要的 API 之一,它是使用 spark Context 创建和操作的。 对于其他 API,需要不同的上下文 - 对于 SQL,需要 SQL 上下文。
您可以在 Apache SparkSession 上找到更多实时示例。
SQL上下文: 在 Spark 版本 1.0 中,SQLContext (org.apache.spark.sql.SQLContext ) 是 SQL 的入口点,以便处理结构化数据(行和列),但是 2.0 SQLContext 已被替换为 SparkSession。 Apache Spark SQLContext 是 SparkSQL 的入口点,SparkSQL 是 Spark 1.x 中用于结构化数据(行和列)的 Spark 模块。加工。 Spark SQL上下文已初始化。 apache-spark SQL context 是 Spark SQL 的入口点,可以从 spark context 接收 JavaSparkContext:
JavaJAVARDD 的 SparkContext 与上面相同,但在 java 实现中。
JavaSparkContext Java 的 [[org.apache.spark.SparkContext]] 友好版本 returns [[org.apache.spark.api.java.JavaRDD]] 并与 Java 集合而不是 Scala 集合。