06 2020 档案
摘要:开篇介绍 在从 OLTP 业务数据库向 DW 数据仓库抽取数据的过程中,特别是第一次导入之后的每一次增量抽取往往会遇到这样的问题:业务数据库中的一些数据发生了更改,到底要不要将这些变化也反映到数据仓库中?在数据仓库中,哪些数据应该随之变化,哪些可以不用变化?考虑到这些变化,在数据仓库中的维度表又应该
阅读全文
摘要:使用正则表达式的预编译功能,可以有效加快正则匹配速度。Pattern要定义为static final静态变量,以避免执行多次预编译。示例:【错误用法】 // 没有使用预编译 private void func(...) { if (Pattern.matches(regexRule, content
阅读全文
摘要:当通过spark读取mysql时,如果数据量比较大,为了加快速度,通常会起多个task并行拉取mysql数据。其中一个api是 def jdbc(url: String, table: String, columnName: String, lowerBound: Long, upperBound:
阅读全文
摘要:作者:大数据学习与分享链接:https://zhuanlan.zhihu.com/p/134122356 Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供一种HQL语言进行查询,具有扩展性好、延展性好、高容错等特点,多应用于离线数仓建设。
阅读全文
摘要://@是为了给模式匹配起个变量名,一般格式为:variableName@pattern,示例: object VariableTest { def main(args: Array[String]): Unit = { val list = List(1, 2, 3, 4, 5, 6) list m
阅读全文
摘要:首先,对RDD相关的操作需要传入闭包函数,如果这个函数需要访问外部定义的变量,就需要满足一定条件(比如必须可被序列化),否则会抛出运行时异常。闭包函数在最终传入到executor执行,需要经历以下步骤: 1.driver通过反射,运行时找到闭包访问的变量,并封装成一个对象,然后序列化该对象 2.将序
阅读全文
摘要:闭包的作用可以理解为:函数可以访问函数外部定义的变量,但是函数内部对该变量进行的修改,在函数外是不可见的,即对函数外源变量不会产生影响。 其实,在学习Spark时,一个比较难理解的点就是,在集群模式下,定义的变量和方法作用域的范围和生命周期。这在你操作RDD时,比如调用一些函数map、foreach
阅读全文
摘要:在Spark中: driver是运行用户编写Application的main()函数的地方,具体负责DAG的构建、任务的划分、task的生成与调度等。job,stage,task生成都离不开rdd自身,rdd的相关的操作不能缺少driver端的sparksession/sparkcontext。 e
阅读全文