- 博客(19)
- 资源 (2)
- 收藏
- 关注
原创 spark缓存机制
第一次调用动作并计算出RDD内容后,RDD的内容可以存储在集群的内存或磁盘上。Spark为持久化RDD定义了几种不同的机制,用不同的StorageLevel值表示。rdd.cache()是rdd.persist(StorageLevel.MEMORY)的简写,它将RDD存储为未序列化的Java对象。当Spark估计内存不够存放一个分区时,它干脆就不在内存中存...
2020-11-12 15:26:26
1325
原创 帮助你理解CountDownLatch是什么
CountDownLatchCountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。CountDownLatch的用
2020-11-12 15:25:09
504
原创 JVM - 字面量 & 符号引用
字面量:int i = 5;把整数5赋值给int型变量i,整数5就是字面量,String str = "xyz";中的xyz也是字面量。符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能无歧义地定位到目标即可。方法名,类名,字段名都是符号引用直接引用(Direct References):直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄。如果有了直接引用,那么引用的目标一定是已经存在于内存
2020-10-25 22:34:38
974
原创 MySQL - 为什么使用B+树做索引结构
官方:索引是帮助MySQL高效获取数据的排好序的数据结构索引的数据结构实现:二叉树 红黑树 Hash表 B-Tree
2020-10-25 15:44:16
112
原创 正则表达式 - 去除文本中html标签
//去掉html标签public static String delHTMLTag(String htmlStr) {String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式String regEx_style = "<style[^>]*?&...
2019-08-19 16:51:12
498
原创 提取《》至数组
String content = "精选近期将开拍的部分新剧:刘恺威、陈都灵《这就是生活》(预计4.23日开机)" +"鞠婧祎、宋威龙、毕雯珺《云上学堂恋爱史》(预计4.23日开机)黄景瑜、吴谨言、宣璐《青春创世纪》" +"(4月底开机)罗云熙、陈钰琪《月上重火》(4.28日开机)许魏洲、谭松韵《我的青春爱过你》" +"(4月底开机)张天爱、徐开骋《我的漂亮朋友》(4月底开机)孙俪、...
2019-08-19 16:48:13
272
原创 Scala基础必知必会
1.基础高阶函数:将其他函数作为参数或其结果是函数的函数def apply(f: Int => String, v: Int) = f(v)def layout(x: Int) = "[" + x.toString() + "]" println(apply(layout, 10))部分参数应用函数:先传入部分参数,返回新的部分应用的函数,再调用这个函数,传入...
2019-02-26 15:45:23
209
原创 Spark - 以编程方式执行Spark SQL查询
初始化spark,你只需传递两个参数:val conf = new SparkConf().setMaster("local").setAppName("My App")val sc = new SparkContext(conf) 集群URL:告诉Spark如何连接到集群上。在这几个例子中我们使用的是local,这个 特殊值可以让Spark运行在单机单线程上而无需连...
2019-02-26 15:42:27
426
原创 在spark SQL中指定多个表
1.写一个创建mysql表的工具类Utility.scala/** * 创建mysql的表 * * @param url msyql的url * @param userName mysql用户名 * @param password mysql密码 * @param tables 注册的表名集合 * @param spark...
2019-02-20 11:27:33
1867
原创 getOrElse含义
getOrElse用于当集合或者option中有可能存在空值或不存在要查找的值的情况 def getOrElse[B1 >: B](key : A, default : => B1) : B1 = { /* compiled code */ }如果有值,那就可以得到这个值,如果没有就会返回一个默认值val content = fieldMap.getOrElse...
2019-02-19 15:10:23
1621
原创 Spark - spark.udf.register
UDF:User Defined Function,用户自定义函数val userData = Array(("a", 10), ("bb", 11), ("ccc", 12), ("ddddd", 13))val userDF = spark.createDataFrame(userData).toDF("name", "age")userDF.show+-----+-
2019-02-19 14:51:33
5367
1
原创 离线测试 - 手把手教你Hope的安装使用
1.简介hope的存在,就是为了不用频繁的提交代码到离线托管平台,进行离线任务的测试。注意:目前hope只支持Python2的环境。推荐Python2.7.15的最新版。1.mac安装 pyenv$ brew update$ brew install pyenv# .zshrc , .bashrc export PYENV_ROOT="$HOME/.pyenv" expo...
2019-02-18 20:16:18
1604
原创 Scala - 《Scala Tutorial for Java》学习笔记
1.入门HelloWorld object HelloWorld { def main(args: Array[String]) { println("Hello, world!") }} object语句定义了一个单例对象:有且仅有一个实例的类2.编译和运行scala没有静态成员我们使用Scala编译器“scalac”来编译Scala代...
2019-02-14 15:42:17
212
原创 Lambda表达式
匿名内部类接口里只有一个方法一次性使用一般方法interface Count { public int add(int a, int b );} Count count = new Count(){ public int add(int a, int b ){ return a+b; ...
2019-01-29 11:10:15
127
原创 实现秒杀系统的并发控制的流程设计
秒杀的特点:高并发、读多写少、资源冲突读多写少:缓存高并发: 限流 负载均衡 同步->异步资源冲突:转换为原子操作,使用数据库锁、分布式锁。 「解决方案」1.本地缓存、按钮控制、图形验证码2.cdn3.Nginx中配置(1)根据什么来限流(可以是ip地址) (2)每次处理的请求数 (3)桶容量4.在负载均衡把每一个请求送到Tomcat之前我...
2019-01-29 10:49:17
465
原创 阿里云SSL证书安装
1、首先把下载的证书如xxx.pfx放到tomcat8/conf下2、找到Connector标签,添加属性,https的默认访问端口是443,如下:<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFi..
2018-11-22 10:39:35
358
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人