提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
用户需要从不同数据源操作结构化、半结构化和非结构化的各种数据。其次,用户需要执行高级分析,而关系数据库已经不能满足要求。
提示:以下是本篇文章正文内容,下面案例可供参考
一、 Spark SQL是什么?
Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。
因为关系数据库已经很流行,而且关系数据库在大数据时代已经不能满足要求。首先,用户需要从不同数据源执行各种操作,包括结构化、半结构化和非结构化数据。其次,用户需要执行高级分析,比如机器学习和图像处理。在实际大数据应用中,经常需要融合关系查询和复杂分析算法(比如机器学习或图像处理),但是,缺少这样的系统。
Spark SQL填补了这个鸿沟:首先,可以提供DataFrame API,可以对内部和外部各种数据源执行各种关系型操作。其次,可以支持大数据中的大量数据源和数据分析算法Spark SQL可以融合:传统关系数据库的结构化数据管理能力和机器学习算法的数据处理能力。
Spark SQL:
1、数据兼容方面:SparkSQL 不但兼容 Hive,还可以从 RDD、parquet 文件、JSON 文件中获取数据,未来版本甚至支持获取 RDBMS 数据以及 cassandra 等 NOSQL 数据;
2、性能优化方面 除了采取 In-Memory Columnar Storage、byte-code generation 等优化技术外、将会引进 Cost Model 对查询进行动态评估、获取最佳物理计划等等;
3、组件扩展方面 无论是 SQL 的语法解析器、分析器还是优化器都可以重新定义,进行扩展。
二、使用步骤
1.引入库
2.读取数据
代码如下(示例):
package com.jscc.sparksql
import com.jscc.common.ScalaSparkUtils
import org.apache.spark.sql.{DataFrame, SparkSession}
object ScalaTest {
def main(args: Array[String]): Unit = {
var session :SparkSession = ScalaSparkUtils.getSession("TEST")
//读取Json
var dataFrame:DataFrame =session.read.json("I:\\MyDemos\\Java\\MyProject2022\\Sparks\\Spark-parent\\spark-sql\\src\\main\\resources\\People.json")
//打印元信息
dataFrame.printSchema()
//释放资源
ScalaSparkUtils.stop(session)
}
}
执行结果:
总结
记录点点滴滴