非结构化数据与结构化数据
Spark SQL是spark用来处理结构化数据的Apache Spark组件 :
与最基本的Spark API——RDD API不同的是Spark SQL接口提供了更多关于数据结构和正在执行的计算的相关信息
在Spark内部,Spark可以使用这些信息来对运算进行额外的优化
Spark SQL的特点 :
1.Spark SQL使用的数据来源
Spark SQL可以使用如Parquet文件、JSON文档、Hive表以及Cassendra数据集来作为自己的数据源
2.Spark SQL提供了多种编程语言的API :
Spark SQL API支持Python, Scala, Java和R
3.Spark SQL组件为ML应用,graph应用等提供了运行基础 :
一些典型的应用如Spark ML Pipelines, Structured Streaming都是基于Spark SQL接口的
Spark SQL的发展史
Hive与Spark SQL的比较
Spark SQL的应用场景
1.ETL作业:
通过Spark SQL将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析、数据挖掘的基础
2.NOW APPS
将Spark SQL,MLlib和GraphX组件应用于批量ETL和电信数据分析,为运营商提供更快,更有意义的见解和可操作的数据