自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Spark-Core之源码级算子详解(二)

1.keys算子理解:只能针对对偶元组使用,keys这个方法是定义在PariPDDfunction中,只有Rdd中装的是对偶元组才能将rdd转换为PariRDDFunction(隐式转换)一般我们经常使用的reduceBykey或者是groupBykey 这种带有Bykey操作的算子都是先将RDD(对偶元组)通过隐式转换为PariRDDFunction 才能调用算子keys算子底层 调用的是map方法,是对rdd中的每一个分区调用map方法2.values算子理解:只能针对对偶元组使用,valu.

2020-11-29 22:31:13 219

原创 Spark-Core中那些你不知道的面试题

1.Application使用SparkSubmit提交的个计算应用,一个Application中可以触发一到多次Action,触发一次Action形成一个DAG,一个DAG对应一个Job,一个Application中可以有一到多个Job2.JobDriver向Executor提交的作业,触发一次Acition形成一个完整的DAG,一个DAG对应一个Job,一个Job中有一到多个Stage,一个Stage对应一个TaskSet,一个TaskSet中有一到多个Task3.DAG概念:有向无

2020-11-29 11:41:45 237

原创 Spark-Core之RDD的概述以及算子详解

一、RDD概述 1、什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。 2、RDD属性 (1)、一组分片(Partition),即数据集的基...

2020-11-29 00:20:53 305

原创 Spark-Core之源码级算子详解(三)

0.intersection求交集功能:是对两个rdd或者两个集合,求共同的部分,比如第一个rdd中有的数据并且第二个rdd中也有的数据,取出相同的元素(会去重)底层:底层调用的cogroup,map将数据本身当成key,null当成value,然后进行过滤,过滤的条件为,两个迭代器都不为空迭代器,然后调用keys取出key def intersection(other: RDD[T]): RDD[T] = withScope { this.map(v => (v, null))

2020-11-29 00:11:40 261

转载 Hive分析窗口函数

Hive分析窗口函数一数据准备cookie1,2015-04-10,1cookie1,2015-04-11,5cookie1,2015-04-12,7cookie1,2015-04-13,3cookie1,2015-04-14,2cookie1,2015-04-15,4cookie1,2015-04-16,4创建数据库及表create database if not exists cookie;use cookie;drop table if exists cook.

2020-11-23 21:51:32 147

转载 Spark-Core中RDD详细介绍

RDD ---弹性分布式数据集 RDD概述 RDD论文 中文版 : http://spark.apachecn.org/paper/zh/spark-rdd.html RDD产生背景 为了解决开发人员能在大规模的集群中以一种容错的方式进行内存计算,提出了 RDD 的概念,而当前的很多框架对迭代式算法场景与交互性数据挖掘场景的处理性能非常差, 这个是RDDs 的提出的动机。 什么是 RDD ...

2020-11-20 23:16:11 174

原创 Redis入门详解及redis的常用基本数据结构

1.redis是什么:Redis是一个非常流行的基于内存的轻量级键值数据库,Redis是一个高性能的kv对(键值)缓存和内存NoSql数据库2.redis的应用场景1) 用来做缓存--redis的所有的数据都是放在内存中(内存数据库)2) 可以用于实现简单的队列系统3) 在离线批处理数据中,可以作为外部字典的知识库,来实现分布式计算过程中的外部数据查询可以在某些特定应用场景下替代传统数据库解决一些特定需求——比如社交类的应用(共同好友,使用了某项功能的人数统计)——sess

2020-11-19 22:55:04 313

转载 ClickHouse函数整理(详细)

1、日期类函数 1.1 时间或日期截取函数(to)—— 返回非日期 函数用途举例结果toYear()取日期或时间日期的年份toYear(toDateTime(‘2018-12-11 11:12:13’)) toYear(toDate(‘2018-12-11’))返回 2018 返...

2020-11-18 22:03:29 4308

转载 实战:消息中间件,解耦、异步、削峰,到底该如何使用

实战:消息中间件,解耦、异步、削峰,到底该如何使用: 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。   目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。消息中间件到底该如何使用,何时使用这是一个问题,胡乱地使用消息中间件增加了系统的

2020-11-16 18:01:14 1575

转载 【hive 日期函数】Hive常用日期函数整理

1、to_date:日期时间转日期函数 select to_date('2015-04-02 13:34:12');输出:2015-04-0212 2、from_unixtime:转化unix时间戳到当前时区的时间格式 select from_unixtim...

2020-11-15 20:45:07 2288

转载 hive sql语句转换成mapreduce

hive sql语句转换成mapreduce 孩子加油孩子 2017-04-28 11:33:52 ...

2020-11-14 22:49:13 358

原创 kafka核心架构详解

1.什么是kafkaKafka是一个分布式消息中间件,支持分区的、多副本的、多订阅者的、基于zookeeper协调的分布式消息系统。通俗来说: kafka就是一个存储系统,存储的数据形式为“消息”;它的主要作用类似于蓄水池,起到一个缓冲作用;2.什么是消息队列常见的消息队列有activemq ,rabbitmq, rocketmq;消息队列常用于两个系统之间的数据传递;分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传

2020-11-14 21:39:48 724

原创 java中使用Gson将JSON格式的字符串转为map集合

应用场景:在生产中我们经常会遇到json格式的字符串,但是只需要其中的几个字段对应的值,所以不需要繁琐的javaBean来封装数据,方便对json格式中的key和value取值 try { Gson gson = new Gson(); Map<String, Object> rtMap = gson.fromJson(json,new TypeToken<Map<String,Object>>() {}.getType());

2020-11-11 16:42:30 871

原创 flume的核心架构,flume 中的核心概念,flume的操作步骤以及flume中的事务控制是如何设计

1. flume是什么flume是一种日志收集或数据采集工具,可以从各种各样的数据源(服务器)采集数据传输(汇聚)到大数据生态的各种存储系统中(hdfs,hbase,kafka)等2. flume的工作原理是什么:flume是一种日志收集和数据采集的工具,将flume部署在日志服务器上,将日志文件通过source从日志服务器上读取文件,然后写入到channel中,然后sink在从channel中读取数据,写入到hdfs文件系统中3. flume的核心架构flume中的核心是由一个个age

2020-11-09 21:31:26 854

原创 scala案例:平均温度案例和用户表和用户订单表的join案例

1. 平均温度案例:1.1 需求:求出各个地区的平均温度1.2 代码实现:package com.zxx.fuxiday05object AvgTemp { def main(args: Array[String]): Unit = { //数据 val d1 = Array(("beijing", 28.1), ("shanghai", 28.7), ("guangzhou", 32.0), ("shenzhen", 33.1)) val d2 = Arra

2020-11-08 23:30:42 331

原创 scala隐式类,隐式函数,隐式变量详解

1.scala隐式的作用:使用implicit 修饰的内容是隐式内容, 隐式的特点就是遇到适应的类型会自动的应用1.1 sacal隐式的意义:使得静态类型动态化 为现有类库添加功能 隐式的代理增强一个类或者一个方法1.2scala隐式的分类:隐式变量隐式参数隐式类2. 隐式变量:定义:隐式值也叫隐式变量,将某个形参变量标记为implicit,所以编译器会在方法 省略隐式参数的情况下去搜索作用域内的隐式值作为缺省参数隐式变量的定义方法:object.

2020-11-08 13:39:31 667

原创 Clickhouse中的各种类型的表引擎详解,Log家族类引擎和MergeTree 家族类引擎详解

1.日志引擎具有最小功能的轻量级引擎。当您需要快速写入许多小表(最多约100万行)并在以后整体读取它们时,该类型的引擎是最有效的。1.1日志引擎的共同属性为:数据存储在磁盘上; 写数据都是以追加的方式往文件里写数据; 有支持并发数据访问的锁:在INSERT查询期间,表被锁定,并且其他用于读取和写入数据的查询都等待表解锁。如果没有数据写入查询,那么可以同时执行任意数量的数据读取查询; 不支持索引:这句话的意思是,select查询的数据范围效率不是很高 不要原子性的写数据:如果某些操作中断了

2020-11-06 18:46:03 1134 1

原创 ClickHouse的特征,性能,优点,缺点,应用场景以及什么是OLAP,Clickhouse的相关优化

1.什么是clickhouse:提供了sql结构化的查询语言; clickhouse是一款分布式数据库; clickhouse可以存储海量数据; 因为clickhouse是分布式存储海量数据,所以解决了高并发的问题; clickhouse中的数据底层是列式存储 clickhouse 不仅可以管理自己的数据,也可以读取别人的数据,比如masql , hdfs 网络和本地文件;2.选择ClickHouse 的首要原因是它比较快,但其实它的技术没有什么新的地方,为什么会快?1 C++.

2020-11-06 16:16:27 2926 1

原创 scala详解之面向对象

1.类和对象详解1.1 组成结构构造函数 成员变量 成员方法(函数) 局部变量 代码块1.2 构造器的定义:每个类都有一个主构造器,这个构造器和类定义"交织"在一起类名后面的内容就是主构造器,如果参数列表为空的话,()可以省略,scala的类有且仅有一个主构造器,要想提供更加丰富的构造器,就需要使用辅助构造器,辅助构造器是可选的,它们叫做this注意:主构造器会执行类定义中的所有语句 1.3 构造器的总结1,有两类构造器:主构造器,辅助构造器 2,构造器...

2020-11-04 22:36:42 298

原创 用scala实现共同好友案例和线段重合案例(底层思想wordcount)

1. 共同好友案例1.1 数组准备:A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,OJ:B,OK:A,C,DL:D,E,FM:E,F,GO:A,H,I,J1.2 代码实现 //先读取文件数据,将数据转为(用户,array(好友列表)) val arr=Source.fromFile(new File(

2020-11-04 21:27:36 266

原创 scala集合中的函数详解大全(一)

0 目录1.foreach函数2.map函数3.filter和filterNot(过滤函数)4.collect函数5.min和max6.minBy和maxBy7. sum函数8. find 函数9. flatten 函数10flatMap函数11mapValues 函数12sorted函数13sortBy和sortWith 函数14.partition和span 函数15grouped 函数和groupBy函数1.for...

2020-11-04 17:02:07 1241

原创 SCALA中集合常用函数大全(二)

1.reduce函数用法:对集合中的元素进行累加的操作,如果是字符串则是对字符串的拼接 //reduce函数 //先定义一个集合 val ls = List(1, 5, 9, 8, 6, 3) val i = ls.reduce(_ + _)//这个方法是默认从左边开始累加 (((1+5)+9)+8)+6 val i1 = ls.reduce(_ - _)//这个方法是默认从左边开始累减 (((1-5)-9)-8)-6 val i2 = l

2020-11-03 20:54:47 779

空空如也

空空如也

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

TA关注的人

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