SQL
文章平均质量分 71
PZ~浪味仙
野蛮生长~无问西东~
展开
-
MYSQL自定义排序方法总结
原文链接MYSQL自定义排序可使用的三种函数:order by fieldorder by instrorder by locate实例1. FIELD函数格式:filed(value,str1,str2,str3,str4)原理:value与str1、str2、str3、str4比较,返回1、2、3、4;如遇到null或者不在列表中的数据则返回0使用实例:SELECT...转载 2018-12-14 21:00:24 · 572 阅读 · 0 评论 -
SparkSQL 学习笔记----Parquet数据源之合并元数据
1、使用场景如同ProtocolBuffer,Avro,Thrift一样,Parquet也是支持元数据合并的。用户可以在一开始就定义一个简单的元数据,然后随着业务的需要,逐渐往元数据中添加更多的列。在这种情况下,用户可能会创建多个Parquet文件,有着多个不同的但是却互相兼容的元数据。Parquet数据源支持自动推断出这种情况,并且进行多个Parquet文件的元数据的合并。2、 开启Par...转载 2019-04-25 14:59:44 · 406 阅读 · 0 评论 -
SparkSQL 学习笔记----自动分区推断
1、表分区表分区是一种常见的优化方式。比如hive中就提供了表分区的特性。在一个分区表中,不同分区的数据通常存储在不同目录中,分区列的值通常就包含在了分区目录的目录名中。SparkSQL中的Parquet数据源,支持自动根据目录名推断出分区信息。例如,如果将人口数据存储在分区表中,并且使用性别和国家作为分区列,那么目录结构可能如下所示tableName |- gender=male ...转载 2019-04-25 14:37:53 · 894 阅读 · 0 评论 -
SparkSQL 学习笔记----数据源Parquet之使用编程方式加载数据
一、Parquet简介1、whatParquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发2、why列式存储和行式存储相比的优势:可以跳过不符合条件的数据,只读取需要的数据,降低IO数据量压缩源码可以降低磁盘存储空间。由于同一列的数据类型是一样的,可以使用更高效的压缩编码(比如Run Length Encoding 和 Delta Encoding)...转载 2019-04-24 16:14:41 · 156 阅读 · 0 评论 -
SparkSQL 学习笔记----通用的load和save操作
一、通用的load和save操作的作用对于Spark SQL和DataFrame来说,无论是从什么数据源创建出来的DataFrame,都有一些共同的load和save操作。可以将一份数据load出来,变成一个DataFrame,然后可以对这个DataFrame执行一些查询筛选等操作,然后save到其他路径中。load操作主要用于加载数据,创建出DataFrame;save操作,主要用户将D...转载 2019-04-23 19:54:01 · 405 阅读 · 0 评论 -
SparkSQL 学习笔记----将RDD转换成DataFrame
一、RDD转换成DataFrame1、为什么要将RDD转换成DataFrame转换成DataFrame之后就可以直接针对HDFS等任何可以构建为RDD的数据,进行Spark SQL进行SQL查询了。2、Spark SQL支持两种方式来将RDD转化成DataFrame使用反射来推断包含了特定数据类型的RDD的元数据这种基于反射的方法,代码比较简洁,当你已经知道你的RDD的元数据时,是一种...转载 2019-04-23 11:10:28 · 918 阅读 · 0 评论 -
SparkSQL 学习笔记----JDBC数据源实战
1、使用jdbc数据源Spark SQL支持使用JDBC从关系型数据库中读取数据。读取的数据又DataFrame表示,可以很方便地使用Spark Core提供的各种算子进行处理。java版本Map<String,String> options = new HashMap<String,String>();options.put("url","jdbc:mysql...转载 2019-04-26 17:40:04 · 140 阅读 · 0 评论 -
SparkSQL 学习笔记----Hive数据源实战
1、什么是HiveContextSpark SQL支持对Hive中存储的数据进行读写操作Hive中的数据时,必须创建HiveContext(HiveContext也是已经过时的不推荐使用,嘤嘤嘤~还没学好就已经过时了)。HiveContext继承自SQLContext,但是增加了在Hive元数据库中查找表,以及HiveSQL语法编写SQL的功能。除了sql()方法,HiveContext还提...转载 2019-04-26 16:19:46 · 163 阅读 · 0 评论 -
SparkSQL 学习笔记----案例实战之查询分数大于80分的学生信息
1、Json数据源Spark SQL可以自动推断JSON文件的元数据,并且加载其数据,创建一个DataFrame。可以使用SQLContext.read.json()方法,针对一个元素类型为String的RDD,或者是一个JSON文件。注意:这里使用的JSON文件与传统意义上的JSON文件不同。每行都必须,也只能包含一个单独的、自包含的、有效地JSON对象。不能让一个JSON对象分散在多行...转载 2019-04-26 11:34:29 · 1129 阅读 · 0 评论 -
hive动态分区实践
一、业务需求:数据从上一个接口传来,入hive库中的相应数据表时,需要根据数据中的某个时间字段值进行分区,分区字段为month_id(年月,如201901),day_id(日,如07),part_id(小时分钟,如1205),并且part_id是每五分钟形成一个分区,如12:04的数据需要入part_id=1205的分区,12:08的数据需要入part_id=1210分区。二、使用hive动态...原创 2019-01-07 18:01:39 · 245 阅读 · 0 评论 -
hive动态分区
最近使用了一下hive的动态分区功能,很实用,在此来总结一下使用的过程。一、hive的分区1. hive的分区 VS 传统关系型数据库分区https://www.cnblogs.com/yongjian/archive/2017/03/29/6640951.htmlHive分区的概念与传统关系型数据库分区不同。传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真...原创 2019-01-07 17:17:56 · 647 阅读 · 0 评论 -
HQL中count(*),count(1),count(column)的区别
1、执行计划:count(*)explain select count(*) from dpods_SMS_Queue limit 100;ExplainABSTRACT SYNTAX TREE:(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME dpods_SMS_Queue))) (TOK_INSERT (TOK_DESTINATION (TO...转载 2019-07-05 09:50:30 · 1546 阅读 · 0 评论