sql基础知识(sql,hive-sql)
hbase 基础知识
hive 基础知识
数据仓库基础知识
Extract-Transform-Load
Extract
udf使用场景
UDF的引入极大地丰富了Spark SQL的表现力。一方面,它让我们享受了利用
Scala(当然,也包括Java或Python)
更为自然地编写代码实现函数的福利,另一方面,又能精简SQL(或者DataFrame的API),更加写意自如地完成复杂的数据分析
编写的UDF可以放到SQL语句的fields部分,也可以作为where、groupBy或者having子句的一部分。
既然是UDF,它也得保持足够的特殊性,否则就完全与Scala函数泯然众人也。这一特殊性不在于函数的实现,而是思考函数的角度,需要将UDF的参数视为数据表的某个列。
当然,我们也可以在使用UDF时,传入常量而非表的列名。让我们稍稍修改一下刚才的函数,让长度10作为函数的参数传入:
获取数组类型json字符串中某一字段的值
udaf使用场景
普通的UDF却也存在一个缺陷,就是无法在函数内部支持对表数据的聚合运算。例如,当我要对销量执行年度同比计算,就需要对当年和上一年的销量分别求和,然后再利用同比公式进行计算。此时,UDF就无能为力了。
这样的需求在实际项目中是很普遍的:请求参数经常以json格式存储在数据库中
spark-sql 所有内置函数
//要使用Spark SQL的内置函授,就一定要导入SQLContext下的隐式转换
org.apache.spark.sql.functions
sql解决不了的问题
简述map-reduce 模型
map-reduce 与spark 模型(DAG)对比分析
map-reduce模型的一般性
map-reduce 过程详解
mapReduce框架负责处理了分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题
把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来