自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据开发面试题

筛选各个维度,直接查询业务数据库的数据,与报表中结果数据对比。查询上游明细数据与报表结果数据对比。

2024-06-04 16:12:53 148

原创 (12)spark sql --操作 Mysql & Hive 代码实现

spark sql --读取 Mysql & Hive 数据MysqlHiveMysqlSpark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。可在启动shell时指定相关的数据库驱动路径,或者将相关的数据库驱动放到spark的类路径下。1)启动spark-shellbin/spark-shell --master spark://hadoop102:7077 [--jars mysq

2022-03-03 23:01:40 1402

原创 (10)spark sql 笔记--01基本使用

spark sql 数据结构上下文环境对象DataFrame语法风格DataSetRDD & DataFrame & DataSet 三者 相互转化UDF函数数据结构有两种数据结构:DataFrame: 在原有RDD的基础上 加上一个结构(类似于字段名),如下(数据类型是弱类型,靠spark自动推断)+----+-------+| age| name|+----+-------+|null|Michael|| 30| Andy|| 19| Justin|

2022-03-03 22:31:32 1685

原创 (9)累加器 & 广播变量

累加器 & 广播变量累加器为什么要使用累加器如果不使用累加器 求和,如下代码:使用累加器之后累加器怎么使用系统累加器自定义累加器累加器为什么要使用累加器如果不使用累加器 求和,如下代码: val sparkConf = new SparkConf().setMaster("local[*]").setAppName("flatmap") val sc = new SparkContext(sparkConf) val rdd = sc.makeRDD(List(1,2

2022-02-28 20:29:23 368

原创 (8)RDD分区器

object spark_mypartitioner { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[*]").setAppName("flatmap") val sc = new SparkContext(sparkConf) val rdd = sc.makeRDD(List( ("apple","xxx"), ("p

2022-02-28 10:56:20 291

原创 (7)RDD缓存 & 检查点

RDD缓存为啥需要缓存将计算结果缓存到内存或磁盘中,供后面重用。因为RDD中不存储数据,如果一个RDD需要重复使用,那么需要从头再次执行来获取数据,所以为了解决这个问题,RDD提供了缓存的方法在数据执行较长,或数据比较重要的场合也可以采用持久化操作。如果数据后续出现问题,就不用从头再执行一遍了,提高了数据的安全性怎么缓存?persist方法 & cache方法使用persist方法或cache方法( 但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD

2022-02-27 20:56:25 911

原创 (6)RDD依赖关系

RDD依赖关系Lineage (血缘)依赖关系是两个RDD之间,RDD1用到了 RDD2,那么RDD1依赖于RDD2,血缘就是多个RDD之间的依赖关系。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。 val reduceRdd = sc.textFile("datas/word.txt") .flatMap(_.split(" ")) .map((_, 1)) .r

2022-02-27 18:06:19 326

原创 (5)spark RDD 序列化

RDD 序列化从计算的角度, 算子以外的代码都是在Driver端执行, 算子里面的代码都是在Executor端执行。那么在scala的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果。如果使用的算子外的数据无法序列化,就意味着无法传值给Executor端执行,就会发生错误,所以需要在执行任务计算前,检测闭包内的对象是否可以进行序列化,这个操作我们称之为闭包检测。object serializable { def main(args: Array[String]): U

2022-02-25 16:46:27 579

原创 (4)spark RDD 算子练习

1)数据准备agent.log:时间戳,省份,城市,用户,广告,中间字段使用空格分隔。2)需求描述统计出每一个省份每个广告被点击数量排行的Top3 /** agent.log: *时间戳,省份,城市,用户,广告,中间字段使用空格分隔。 */ // TODO 需求: 统计出每一个省份 广告被点击数量排行的Top3 val agentRdd = sc.textFile("Input/sparkCore/agent.log") agentRdd

2022-02-24 17:33:29 725

原创 (3)spark RDD算子详解

RDD 算子其实就是rdd方法,和scala方法区分开来分为两种 转换算子 和行动算子转换算子功能的补充封装 将旧的RDD包装成新的RDD比如 map flatmapRDD整体上分为Value类型、双Value类型和Key-Value类型map算子 – Value类型每次处理一条数据,对数据或数据类型进行转换 def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("lo

2022-02-24 15:29:52 947

原创 (2)Spark RDD定义 执行原理

RDD定义RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。spark的最小计算单元RDD,通过组合,让功能越来越强大。装饰者设计模式,逐层的增加功能的扩展。如下图RDD的数据只有在调用collect方法时,才会真正执行业务逻辑操作。之前的都是功能扩展,RDD是不保存数据的。执行原理Spark框架在执行时,先申请资源,然后将应用程序的数据

2022-02-18 16:48:53 117

原创 (1)Spark运行架构 核心概念简单理解

运行架构Spark框架的核心是一个计算引擎,它采用了标准 master-slave (主从)的结构。Driver 是master,负责管理整个集群中的作业任务调度,驱使整个应用运行起来的程序。Executor 则是 slave,负责实际执行任务。如图所示:核心概念Executor与Core在提交应用时,可以提供参数指定计算节点的个数,以及对应的资源。这里的资源一般指的是工作节点Executor的内存大小和使用的虚拟CPU核(Core)数量。应用程序相关启动参数如下:–num-execut

2022-02-17 16:51:58 168

原创 (7)scala 集合定义 & 常用方法

集合定义:Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变。...

2022-02-16 19:30:58 397

原创 (6)scala中的隐式转换

隐式转换scala允许开发人员自定义类型转换规则将两个无关的类型通过编程手段让他们自动转换隐式函数object ScalaImplicit { def main(args: Array[String]): Unit = { //定义隐式函数 让Double 类型的变量自动转换为int类型 implicit def transform( d : Double ): Int = { d.toInt } var d :

2022-02-14 19:25:40 661

原创 (5)scala 高阶面向对象编程

高阶面向对象编程继承和Java一样,使用extends关键字,子类继承父类的方法和属性class Person {}class User extends Person {}子类重写父类方法 之 动态绑定机制class Person {def test()=}class User extends Person {}抽象抽象类,使用abstract 关键字abstract class Person { //抽象属性 只有声明没有初始化 var name:String

2022-02-14 16:55:30 679

原创 (4)scala面向对象编程 (一)基础

scala面向对象编程基础面向对象编程包的声明import类属性访问权限方法对象构造方法高阶面向对象编程继承子类重写父类方法 之 动态绑定机制抽象基础面向对象编程笔记来自教程:https://www.bilibili.com/video/BV1aP4y1a7uC?p=25包的声明Java中package包的语法比较单一,Scala对此进行扩展scala同一个源码文件中,包可以多次声明包名可以和文件路径不一致在包中声明的类,调用时,导入最后的那个包(从上到下,声明的所有包的路径联合)sca

2022-02-09 17:15:16 550

原创 (3)scala函数式编程(三)惰性函数 和 异常处理

1.惰性函数定义:函数的执行将被推迟,直到我们首次对此取值,该函数才会执行。这种函数我们称之为惰性函数。声明方法:加入lazy关键字 lazy val res = sum(1,2) println("-----------------------") println("res=" + res) //当需要使用到res时,就会真正的开始计算2.异常处理scala也是用try catch来捕获异常,和java类似,但写法不太相同object Exception { def main(ar

2022-01-17 20:35:24 246

原创 (2)scala函数式编程(二)闭包和柯里化 的理解

1.闭包可以将函数作用域外的自由变量 捕获 而 而构成一个封闭的函数scala> def addBase(x:Int) = (y:Int) => x + yaddBase: (x: Int)Int => IntaddBase可以理解为返回值为函数的方法(y:Int) => x + y是一个匿名函数,这个匿名函数的入口参数是y代码展示:scala> val addOne = addBase(1)addOne: Int => Int..

2022-01-17 11:01:55 162

原创 (1) scala 函数式编程(一) 函数定义 函数概念

函数在scala可以做任何事情函数可以作为另一个函数的参数函数可以作为另一个函数的返回值函数可以赋值给一个变量1.

2022-01-12 15:54:23 169

原创 mysql数据库导出导入(大量数据也适用)

1.首先在windows下,执行命令,将bg1901数据库导出到d:/data.sql,生成脚本文件mysqldump -uroot -p bg1901 >d:/data.sql2.如果要导入,进入mysql下,先创建一个数据库create database temp;3.然后切换到temp数据库,载入脚本文件use temp;source d:/data.sq...

2022-01-06 10:28:00 1331

原创 Flink从实践到理论(scala):获取数据源

package com.baseimport java.util.{Properties, Random}import org.apache.flink.api.common.serialization.SimpleStringSchemaimport org.apache.flink.streaming.api.functions.source.SourceFunctionimport org.apache.flink.streaming.api.scala._import org.ap...

2021-07-19 10:22:30 117

转载 Hadoop框架01-hadoop优势及组成-面试常见问题

目录1.常用端口号:2.hdfs小文件过多怎么处理?3.hdfs读写流程4.副本策略1.常用端口号: hadoop2.x hadoop3.x 访问HDFS端口 50070 9870 访问MR执行情况端口(yarn) 8088 8088 历史服务器 (yarn) 19888 ...

2021-02-25 16:18:53 72

原创 Hadoop框架01-hadoop优势及组成

目录Hadoop框架1.hadoop的优势2.hadoop的组成1.hadoop1.x和hadoop2.x的区别2.HDFS架构3.Yarn架构Hadoop框架1.hadoop的优势1)高可靠性:数据有多个副本,即使集群中某台机器发生故障,数据也不会丢失2)高扩展性:计算在集群上运行,集群可扩展数以千计的节点(机器)3)高效性:计算可以并行4)高容错性:自动将失败的任务重新分配2.hadoop的组成1.hadoop1.x和hadoop2.x的区别

2021-02-25 16:17:49 330 1

原创 Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.2:compile (scala-compile-first

写完代码开开心心。。一打包。卧槽。。。然后半天过去了。。我还在解决这个鬼错误。百度上都是说什么本地scala版本和idea scala版本冲突。。最后心灰意冷,随便点了点。。卧槽。。真正得错误原来在这。。。小菜鸡得一天结束了...

2020-10-20 17:36:05 3329 9

原创 idea控制台设置日志输出级别

1.maven项目导入log4j依赖包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version></dependency>注意不能同时导入sl...

2020-02-29 10:30:57 14030

原创 传统的数据处理架构->流处理架构(Lambda架构->Kappa架构)

传统的数据处理架构类似于流式处理,来一个事件,立即做出响应,适用于关系型数据库,数据量较小的情况用Web程序来举例,用户点击了网页上的按钮后,会向服务器发起请求,后台立即做出响应,从数据库中查询对应的信息,进行计算,得到的结果,可能再存回数据库中,最后给用户做一个页面响应比如用户登录,用户填写用户名和密码之后,点击注册,后台做出响应,去数据库中查询,验证该用户是否存在,如果不存在就...

2020-02-28 22:42:43 1817

原创 flink初识

为什么选择flink?1.低延迟,毫秒级,每秒处理百万个事件 在实时处理这块,目前应用最多的是SparkStreaming,SparkStreaming虽然也是实时的,但是它采用的还是批处理的方式,它的思想是把批次做的足够小,当把一条数据当成一个批次时,就相当于时流式处理,但是批次设置的时间间隔为秒级,在一些极端的场景下,这种延迟是不能接受的,比如高铁的智能监控系统,差几秒可能就没...

2020-02-28 22:41:29 108

原创 flink读取数据源的四种方式

object SourceDemo { def main(args: Array[String]): Unit = { val env = StreamExecutionEnvironment.getExecutionEnvironment //数据来源 //1.从文件读取 val inpath="D:\\programs\\sparkPrograms\\F...

2020-02-28 22:40:16 3116

原创 Flink_WordCount

1.批处理方式(攒一批再处理,看到的是处理后的最终结果)import org.apache.flink.api.scala._object BatchWordCount { def main(args: Array[String]): Unit = { //创建执行环境 val env = ExecutionEnvironment.getExecutionEnviro...

2020-02-27 16:10:40 170

原创 将hdfs文件加入hive分区表中

先把文件放入hdfs,或用flume采集到hdfs,参看另一篇,再把hdfs文件加载到hive表中alter table ods_nshop.ods_01_releasedatas add partition (bdp_day='20191215') location 'hdfs://hadoop01:9000/data/nshop/ods/release/bdp_day=20191215'...

2020-01-07 22:28:21 2408

原创 flume采集文件到hdfs

# Name the components on this agenta1.sources = r1a1.sinks = k1a1.channels = c1#监控文件a1.sources.r1.channels = c1#监控文件夹a1.sources.r1.type = TAILDIR#元数据保存位置a1.sources.r1.positionFile = /opt/app...

2020-01-07 22:28:13 322

原创 hdfs文件加载进hive表的两种方法

1.第一种方法当存储路径与表所在路径不一致时,可以load进去,如果表中字段类型不对应,该字段的值将会为空load data inpath 'hdfs://hadoop01:9000/tmp/sales_info.txt' overwrite into table sales_info partition(dt = '20191215');2.当存储路径与表所在路径一致时,可...

2020-01-07 22:27:56 3443

原创 Spark中的RDD

Rdd是弹性分布式数据集,是spark中最基本的计算(逻辑)抽象,它代表一个不可变,可分区,里面的元素可并行计算的集合*1.Rdd弹性*1)存储的弹性:自动进行内存和磁盘数据存储的切换 spark优先把数据放到内存中,如果内存放不下,就会放到磁盘中2)自动切换容错的弹性:基于血统的高容错机制 在Rdd进行转换的时候,会形成rdd依赖链,(即创建第二个rdd时需要使用第一个rdd作为...

2019-11-05 21:21:06 75

原创 java idea使用小辣椒的步骤

1.首先从官网下载jar包https://projectlombok.org/download2.创建lib文件夹,把jar包放进去3.将jar包添加到工程中4.下载lombok插件5.打开注释处理器

2019-08-27 16:34:03 4876

原创 java创建线程的三种方式

第一种class SellThread exends Thread{ @overried public void run(){ System.out.println("我是继承Thread的线程"); } }启动线程 @Test public void testThread() { Thread sellThread =...

2019-08-24 16:33:45 100

原创 mysql数据库导出导入(大量数据也适用)

1.首先在windows下,执行命令,将bg1901数据库导出到d:/data.sql,生成脚本文件mysqldump -uroot -p bg1901 >d:/data.sql2.如果要导入,进入mysql下,先创建一个数据库create database temp;3.然后切换到temp数据库,载入脚本文件use temp;source d:/data.sql使用命令行之...

2019-08-24 16:02:02 192

原创 sql注意事项

SQL:Structure Query Language。(结构化查询语言)SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采 纳为关系数据库语言的国际标准。 Sql是半衰期最长的语言 各数据库厂商都支持ISO的SQL标准。普通话SQL92 92年提出的SQL的国际化标准SQL99 99年提出的SQL标准,多加了连接等标准(SQL-...

2019-08-24 11:31:23 209

原创 递归的用法

自己调用自己public class Recursion{ public static void main(String[] args){ getSum(100); } //求0到给定数之间的数之和 public static int getSum(int value){ if(value <= 0){ ...

2019-07-25 17:51:29 79

原创 java方法重载

重载的特点方法名相同,但参数个数不同public class Overload{ public static void eat(){ System.out.println("看不到吃饭工具,看来是印度咖喱饭"); } public static void eat(String tool){ System.out.println("上了一...

2019-07-25 17:44:13 87

原创 vue+element-ui报错Error in event handler for "click": "TypeError: Cannot read property 'then'

父组件:子组件

2019-04-25 17:19:29 34747 1

tomact7.0,java web开发搭建静态服务器

tomact7.0,java web开发搭建静态服务器,具体操作博客中有哦

2018-12-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除