Spark SQL
Spark SQL
威少SOS
改变从这里开始
展开
-
Spark SQL的前世今生
目录一:顺序图谱二:为什么有Hive,Shark,Spark SQL等一类的组件?(1)Hive(2)Shark(3)Spark SQL三:Spark SQL的性能优化技术详解1、内存列存储(in-memory columnar storage)2、字节码生成技术(byte-code generation)3、Scala代码编写的优化一:顺序图谱...原创 2019-06-07 00:09:46 · 646 阅读 · 0 评论 -
Spark SQL之工作原理剖析以及性能优化
目录一:Spark Sql 的执行流程二:Spark SQL之优化三:待解决问题一:Spark Sql 的执行流程1、SqlParse(SQL语句)MySQL,Oracle,Hive等,都首先生成一条SQL语句的执行计划2、Analyser(分析仪)解析后的逻辑计划:例如: from table students = > filter => sele...原创 2019-06-23 23:21:19 · 344 阅读 · 0 评论 -
Spark SQL之Hive数据源实战
目录一:HiveContext与SQLContext的区别二:使用Spark SQL操作Hive三:DataFrame的saveAsTable命令四:查询分数大于80分的学生的完整信息一:HiveContext与SQLContext的区别HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及用HiveQL语法编写SQL的功能二:使...原创 2019-06-18 19:31:30 · 629 阅读 · 1 评论 -
Spark SQL之核心源码分析
目录一:DataFrame lazy特性二:HiveContext.sql() SQL起始三:SQLContext.executeSql() 正式执行四:Spark SQL 具体转换解析分析一:DataFrame lazy特性//在用户拿到了封装的 Unresolved LogicalPlan的DataFrame之后//执行一些 show(),select()...原创 2019-06-26 15:46:35 · 1673 阅读 · 0 评论 -
Spark SQL 的SQL处理引擎分析
目录一.补充以Sql Server 为例,SQL语句的执行逻辑顺序1、From阶段2、Where 阶段3、Group By4、Having5、Select6、Order By7、SQL 流程示意图二:Sqlparser:sql –> unresolved logical plan三:Analyzer:Unresolved logical plan...原创 2019-06-26 15:39:32 · 1125 阅读 · 0 评论 -
Spark Sql之UDAF自定义聚合函数
一:UDAF含义UDAF:User Defined Aggregate Function。用户自定义聚合函数对比UDF:UDF,其实更多的是针对单行输入,返回一个输出UDAF,则可以针对多行输入,进行聚合计算,返回一个输出二:关于UDAF的一个误区我们可能下意识的认为UDAF是需要和group by一起使用的,实际上UDAF可以跟group by一起使用,也可以不跟gro...原创 2019-06-23 00:02:20 · 1450 阅读 · 0 评论 -
Spark SQL之 UDF自定义函数实战
目录一:UDF含义二:使用scala/java 创建的方法直接使用在Hive SQL 中三:代码一:UDF含义UDF:(User Defined Function)用户自定义函数二:使用scala/java 创建的方法直接使用在Hive SQL 中作用:真正的把SQL的脚本操作方法与高级语言的方法贯通三:代码SCALA:实战def main(ar...原创 2019-06-21 19:36:48 · 1165 阅读 · 0 评论 -
Spark SQL之JSON数据源操作实战
目录一:sqlContext依据JSON文件创建DataFrame的文件格式限定二:DataFrame的元数据指哪些?三:元数据的定义四:实战>查询成绩为80分以上的学生的基本信息与成绩信息一:sqlContext依据JSON文件创建DataFrame的文件格式限定限定:每行都必须,也只能包含一个,单独的,自包含的,有效的JSON对象。不能让一个JSON对象分...原创 2019-06-17 17:33:53 · 400 阅读 · 0 评论 -
数据源Parquet之使用编程方式加载数据
目录一:列式存储和行式存储相比有哪些优势呢?1、可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量。2、压缩编码可以降低磁盘存储空间3、只读取需要的列,支持向量运算,能够获取更好的扫描性能。二:使用编程的方式加载Parquet文件中的数据。JAVA版本:SCALA版本:补英 ['pɑːkɪ; 'pɑːkeɪ]n. 镶木地板;剧场正厅座位;(法)检查机关...原创 2019-06-11 20:04:52 · 2628 阅读 · 1 评论 -
Parquet数据源之合并元数据
目录一:为什么需要合并元数据?二:scala代码三:结果展示:(图片)一:为什么需要合并元数据?作用:类似于关系型数据库表的联表查询特点:同样的影响效率二:scala代码def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName("P...原创 2019-06-16 22:50:32 · 521 阅读 · 0 评论 -
Spark SQL 之开窗函数
目录一:开窗函数二:row_number()开窗函数实战三:开窗函数与一般函数使用的区别?一:开窗函数开窗函数的由来:在开窗函数出现之前存在着非常多用 SQL 语句非常难解决的问题,非常多都要通过复杂的相关子查询或者存储过程来完毕。为了解决这些问题,在2003年ISO SQL标准增加了开窗函数,开窗函数的使用使得这些经典的难题能够被轻松的解决。眼下在 MSSQLSe...原创 2019-06-20 19:08:39 · 3851 阅读 · 1 评论 -
Spark SQL之使用反射方式将RDD转换为DataFrame
目录一:情景二:与动态相比的差异三:疑问:为何无法自动判断类型?四:代码示例1.JAVA版本:2.SCALA版本:一:情景这种基于反射的方式,代码比较简洁,当你已经知道你的RDD的元数据时,是一种非常不错的方式。二:与动态相比的差异字段的名称,类型的动态获取(本质上都是要事先知晓,而不是程序自动判断)三:疑问:为何无法自动判断类型?数据不...原创 2019-06-10 19:43:10 · 436 阅读 · 0 评论 -
Spark SQL之Parquet数据源之自动分区推断
目录一:分区列的值二:表分区是如何达到优化效果?三:怎么增加目录数据四:传递Parquet文件到对应的分区目录中五:自动推断用户数据的性别和国家六:Parquet自动推断的好处七:怎么设置 Spark SQL 是否自动判断分区的数据类型一:分区列的值在一个分区表中,不同分区的数据通常存储在不同的目录中,分区列的值通常就包含在了分区目录的目录名中二:表...原创 2019-06-15 23:02:36 · 514 阅读 · 0 评论 -
Spark SQL之通用的load和save操作
一:Spark SQL的DataFrame的共同操作load操作主要用于加载数据,创建出DataFrame;save操作,主要用于将DataFrame中的数据保存到文件中例子:DataFrame df = sqlContext.read().load("users.parquet");df.select("name", "favorite_color").write().save(...原创 2019-06-14 21:09:02 · 592 阅读 · 0 评论 -
Spark SQL之内置函数
目录一:DataFrame的内置函数作用二:DataFram的的内置函数等三:案例实战四:混合函数一:DataFrame的内置函数作用DataFrame的函数并会执行后立即返回一个结果值,而是返回一个Column对象,用于在并行作业中进行求值Column可以用在DataFrame的操作之中,比如select,filter,groupBy等。函数的输入值,也可以是C...原创 2019-06-19 17:26:29 · 815 阅读 · 0 评论 -
Spark SQL之DataFrame的使用
目录一:spark sql作用二:DataFrame三:SQLContext与HiveContext四:创建DataFrame以及常用方法一:spark sql作用Spark SQL是Spark中的一个模块主要用于进行结构化数据的处理,作为分布式的SQL查询引擎二:DataFrame1.DataFrame的作用:是Spark SQL提供的最核心的编程抽...原创 2019-06-09 20:53:33 · 3111 阅读 · 0 评论 -
Spark SQL之RDD与DataFrame进行转换
一:为什么要将RDD转换为DataFrame?可以直接针对HDFS等任何可以构建为RDD的数据,使用Spark SQL进行SQL查询二:方案1.反射:是使用反射来推断包含了特定数据类型的RDD的元数据。这种基于反射的方式,代码比较简洁,当你已经知道你的RDD的元数据时,是一种非常不错的方式。2.动态:是通过编程接口来创建DataFrame,你可以在程序运行时动态构...原创 2019-06-09 01:15:11 · 338 阅读 · 0 评论 -
Spark SQL之延伸Hive On Spark
目录一:Spark SQL 与 Hive On Spark的区别二:Hive的基本工作原理三:Hive On Spark的计算原理四:Hive On Spark的优化点五:RPC了解一:Spark SQL 与 Hive On Spark的区别Spark SQL是Spark是Spark的一个项目。研发出来的针对各种数据源,包括Hive、JSON、Parqu...原创 2019-06-24 22:58:44 · 372 阅读 · 0 评论
分享