SparkContext、JavaSparkContext、SQLContext 和 SparkSession 之间的区别?

2024-03-01

  1. 有什么区别SparkContext, JavaSparkContext, SQLContext and SparkSession?
  2. 是否有任何方法可以使用 a 来转换或创建上下文SparkSession?
  3. 我可以使用一个条目完全替换所有上下文吗SparkSession?
  4. 所有功能都在SQLContext, SparkContext, and JavaSparkContext也在SparkSession?
  5. 一些函数如parallelize有不同的行为SparkContext and JavaSparkContext。他们的行为如何SparkSession?
  6. 我如何使用 a 创建以下内容SparkSession?

    • RDD
    • JavaRDD
    • JavaPairRDD
    • Dataset

有没有一种方法可以改变JavaPairRDD into a Dataset or a Dataset into a JavaPairRDD?


sparkContext是 Scala 实现入口点并且JavaSparkContext是一个java包装器sparkContext.

SQLContext是 SparkSQL 的入口点,可以从sparkContext在2.x.x之前,RDD、DataFrame和Data-set是三种不同的数据抽象。从Spark 2.x.x开始,这三种数据抽象是统一的SparkSession是Spark的统一入口点。

附加说明是,RDD 适用于非结构化数据、强类型数据,而 DataFrame 适用于结构化和松散类型数据。你可以check https://stackoverflow.com/questions/31508083/difference-between-dataframe-and-rdd-in-spark

有没有任何方法可以使用 Sparksession 转换或创建 Context ?

是的。它是sparkSession.sparkContext()对于 SQL,sparkSession.sqlContext()

我可以使用单个条目 SparkSession 完全替换所有 Context 吗?

是的。你可以从sparkSession中获取相应的上下文。

SQLContext、SparkContext、JavaSparkContext等中的所有函数是否都添加到SparkSession中?

不直接。你必须获得各自的上下文并利用它。诸如向后兼容性之类的东西

如何在SparkSession中使用这样的功能?

获取各自的上下文并利用它。

如何使用 SparkSession 创建以下内容?

  1. RDD 可以从以下位置创建sparkSession.sparkContext.parallelize(???)
  2. JavaRDD 与此相同,但在 java 实现中
  3. Java对RDDsparkSession.sparkContext.parallelize(???).map(//making your data as key-value pair here is one way)
  4. 如果是结构化数据,sparkSession返回的Dataset就是Dataset。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SparkContext、JavaSparkContext、SQLContext 和 SparkSession 之间的区别? 的相关文章

随机推荐