MAPREDUCE服务 MRS-Spark基本原理:SparkSession原理

时间:2023-11-07 14:09:49

SparkSession原理

SparkSession是Spark编程的统一API,也可看作是读取数据的统一入口。SparkSession提供了一个统一的入口点来执行以前分散在多个类中的许多操作,并且还为那些较旧的类提供了访问器方法,以实现最大的兼容性。

使用构建器模式创建SparkSession。如果存在SparkSession,构建器将自动重用现有的SparkSession;如果不存在则会创建一个SparkSession。 在I/O期间,在构建器中设置的配置项将自动同步到Spark和Hadoop。

import org.apache.spark.sql.SparkSession
val sparkSession = SparkSession.builder
  .master("local")
  .appName("my-spark-app")
  .config("spark.some.config.option", "config-value")
  .getOrCreate()
  • SparkSession可以用于对数据执行SQL查询,将结果返回为DataFrame。
    sparkSession.sql("select * from person").show
  • SparkSession可以用于设置运行时的配置项,这些配置项可以在SQL中使用变量替换。
    sparkSession.conf.set("spark.some.config", "abcd")
    sparkSession.conf.get("spark.some.config")
    sparkSession.sql("select ${spark.some.config}")
  • SparkSession包括一个“catalog”方法,其中包含使用Metastore(即数据目录)的方法。方法返回值为数据集,可以使用相同的Dataset API来运行。
    val tables = sparkSession.catalog.listTables()
    val columns = sparkSession.catalog.listColumns("myTable")
  • 底层SparkContext可以通过SparkSession的SparkContext API访问。
    val sparkContext = sparkSession.sparkContext
support.huaweicloud.com/productdesc-mrs/mrs_08_000801.html