SparkSQL是什么(概括)

SparkSQL-概括

简介

SparkSQL是Spark整体架构用来处理结构化数据的模块,SparkSQL的接口为Spark提供了有关数据结构执行信息,在内部,SparkSQL使用这些额外的信息来优化应用程序,SparkSQL有提供2种不同的数据抽象

  • DataFrame
  • DataSet

2种不同的数据抽象分别对应不同的API,有不同的但是类似的算子操作,另外SparkSQL还提供了SQL查询

DataSet & DataFrame

Dataset

一个Dataset也属于一个分布式弹性数据集,集成了RDD的优点[强类型、强大的lambda表达方式]、同时集成了DataFrame的结构Schema、Encode的优化,同时DataSet可以从JVM直接构建,支持使用map,filter,…等算子进行数据处理。

NOTE:在代码中,可以通过import spark.implicit._将DataSet、DataFrame、RDD进行互相转换;

DataSetAPI在Scala和Java中是可用的,python虽然不支持DataSetApi,但是也可以使用很多类似的特性。

DataFrame

一个DataFrame也是一种特殊的DataSet,只是数据被组织成不同的分散的列(field_names),概念上可以将DataFrame理解成一个关系型数据库或者View视图,DataFrame可以从【结构化数据Json、CSV、Parquet】、Hive table、外部数据库Mysql等,或者现成的RDD构建。在Scala和Java中,DataFrame是一种简单的DataSet[ROW]。

DataFrame可以在Scala、Java、Python、R中应用

SQL Query

SparkSQL的SQL功能支持从View、HiveTable中查询数据

具体可以参考:http://spark.apache.org/docs/2.4.0/sql-data-sources-hive-tables.html

//spark.enableHiveSupport()				
val spark: SparkSession = SparkSession.builder.config(conf).getOrCreate(0)
  
import spark.implicit._
//SQL查询
val dataframe: DataFrame = sparl.sql("select * from view")
//转化成DataSet
val dataset = dataframe.as[classOf[A]]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值