文章
展示所有posts
- Sbt 使用指南
- git-使用记录
- rscala-源码阅读
- R下载安装等环境配置
- scala 周报阅读摘要
- scrcpy-使用计算机操控手机-使用体验
- scala 生成词云图片
- spark 项目调试
- 编译原理-引论
- 统一建模语言(UML)
- 设计模式学习
- scalaTest 文档阅读笔记
- 计算机漫游
- 分布式存储系统理论笔记
- 函数编程设计模式
- Scala 高级编程
- Spark Tune Ui
- 软件设计师考试中问题的问答
- 计算机漫游
- scala databricks 编码规范阅读记录
- spark 项目调试
- Scala线性化算法
- spark 源码阅读记录
- scala 2.12 PreDef 源码阅读记录
- Welcome to Jekyll!
- 1到100亿以内的素数按顺序的IO输出
- 创建gh-pages站点
遍历tags
application
algorithm
scala
- scala 周报阅读摘要
- scala 生成词云图片
- scalaTest 文档阅读笔记
- scala databricks 编码规范阅读记录
- spark 项目调试
- spark 源码阅读记录
- scala 2.12 PreDef 源码阅读记录
spark
computer
hdfs
gfs
数据结构
program
编译原理
hbase
遍历categories
技术文章
jekyll
update
note
- scala 周报阅读摘要
- scala 生成词云图片
- spark 项目调试
- scalaTest 文档阅读笔记
- 分布式存储系统理论笔记
- scala databricks 编码规范阅读记录
- spark 项目调试
- spark 源码阅读记录
- scala 2.12 PreDef 源码阅读记录
个人学习
工具分享
源码阅读
问题记录
带有文章摘要的
-
Sbt 使用指南
SBT on IntelliJ takes a very long to time refresh
-
git-使用记录
git clone error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
-
rscala-源码阅读
我工作的项目一直在spark 中使用r算法包的需求,中间用到了rscala 这个项目,但是性能比较差,我想通过对源码的阅读通过修改源码的方式来提高rscala 的性能以及和我们的项目使用的一个定制化修改。
-
R下载安装等环境配置
可以通过ID 号选择使用的cran 的镜像位置 chooseCRANmirror(16) options(“repos” = c(CRAN=”http://mirrors.cloud.tencent.com/CRAN/”)) options(BioC_mirror=”http://mirrors.cloud.tencent.com/bioconductor”)
-
scala 周报阅读摘要
Enum 的一些实现
-
scrcpy-使用计算机操控手机-使用体验
个人本来使用小米自己开发的远程控制软件,但是使用过程中感觉,功能太少,而且帧率太低,有时有无法链接的问题.小米的自己软件安装包就有500M+. 在搜索远程操控手机时发现了 github 上的这个项目,非常方便好用,安装包小,开源.
-
scala 生成词云图片
近来整理个人的历史文件发现以前上大学时做的笔记,发现以前将专业名词做成图片非常适合对于学术名词解释的复习和记忆提取非常有价值.之前使用
adobe AI
手动排版坐的桌面背景.现在想到可以用简单的程序来实现这个过程. 便开始探索整个自动化流程 首先看了网络词云图片的工具,发现渲染速度慢支持的图片大小有限,高级功能需要收费.边打开github 找到了 java 的词云生产库kumo,非常符合我的需求,于是我参考指引文档开始了个人的开发. -
spark 项目调试
术语解析 一致性模型: CAP理论: 对于分布式存储系统,只能做到 一致性,可用性,分区容错性中的两个. Chubby 算法: 布隆过滤器 非关系型数据库 (Not only SQL) RAID JBOD
-
编译原理-引论
引论
1.1
-
统一建模语言(UML)
使用统一建模语言描述类之间的关系
-
设计模式学习
设计模式是软件开发过程中一些常见问题的解决方案,有助于解决代码设计过程中出现的问题. 23个设计模式最早由四位开发者的《设计模式: 可复用面向对象软件的基础》 中完整的阐释,由于书名太长,后来人们将其简称为四人组的书(Gang of Four). 设计模式相当于定义了一套解决方案的抽象,不同于算法那样明确定义解决觉最终目的的一系列步骤。而设计模式倾向于解决方案的高层次的描述。 设计模式不同于库这样实现好的代码而是一套一般性概念。 设计模式包含的四个核心概念是 1. 意图2. 动机3.结构4.实现 关于设计模式存在一些争议: 1.当编程语言确实必备的抽象功能时,人们才需要设计模式来补充。比如 lamda 函数替换了大部分可能需要使用策略模式的情形.scala 中的object 解决了需要手动实现单例模式的问题.
- 设计模式必须合理使用.
如果你只有一把铁锤, 那么任何东西看上去都像是钉子。
- 设计模式必须合理使用.
-
scalaTest 文档阅读笔记
(阅读文档后的笔记)[https://www.scalatest.org/user_guide]
风格
scalatest 有若干测试风格的接口,选择适合自己项目的接口即可
-
计算机漫游
组成:
- node
- edge 表示
- adjency list
- 使用一个map .key 指的是当前node,value 是一个集合表示当前点连接的node 遍历
- 深度优先 使用stack作为数据结构
```javascript const graph={ a:[‘b’,’c’], b:[‘d’], c:[‘e’], d:[‘f’], e:[], f:[] } const depthFirstPrint=(graph,source)=> { const stack=[source]; whie(stack.length>0){ const current=stack.pop(); console.log(current); for(let neighbor of graph[current]){ stack.push(neighbor); }
-
分布式存储系统理论笔记
戌米的论文笔记的笔记
-
函数编程设计模式
观看(Functional Design Patterns - Scott Wlaschin)[https://www.youtube.com/watch?v=srQt1NAHYC0]笔记
-
Scala 高级编程
dark syntax sugar
- methods with singar param: use {} instead param value .example:scala.util.Try{ // sth }
- single abstract methods class:
// after scala 2. type Action{ def act(i:Int):Int } val myAct:Action=(x:Int)=>x
- last param assicoative methods def :: execute right to left
- infix type : 中缀表达式
- update function : a=b means a.update(b) eg
array(1)==2 means array.update(1,2)
- setter : def variable_=(i:Int):unit 使用这种形式可以认为是 变量variable 的setter 方法
模式匹配
可以匹配的类型
- 常量
- 通配符
- 样例类
- 元组
- 其它
通过对普通的class的伴生对象中(编译器不强求,只是约定俗称) 定义
def upapply(obj:classType):Option[Tupele]
,可以在unapply 方法中定义谓词来返回None None的条件就是模式不匹配的情况 使用返回值为Boolean 的 unapply 方法来定义 中缀表示法 decomposing sequence: unapplySeq 方法 重写unapply 的返回类型 给新类型定义 get:T isEmpty 方法就可以了
-
Spark Tune Ui
- 检查不同的执行计划
select * from table where value=0.0; => spark cast value to Double
select * from table where value=0; => spark cast value to Int
this maybe cause different result - schema prune ,模式裁剪 可以较少不必要的字段的的读取 spark.conf.set(“spark,sql.optimizer.nestedSchemaPruning.enabled”,true)
- collapse project
- cross session cached
- A sql query=>mutiple job
- A job => A directed acyclic graph
- 优化
- 找到不平衡的地方
- 持久化
- join 优化
- SortMergeJoins(Standard) => both sides is big
- Broadcast Joins(Fastest) => one side is small( one sided < spark.sql.autoBroadcastJoinThreshold)(default 10M)
- Sknew Joins
- Range Joins
- BroadcastedNestedLoopJoin(BNLJ)
- 处理数据倾斜
- 减少耗时的操作
- repartition :use coalesce or shuffle partition count
- count :Do you really need it
- use approxCountDistinct instead of distinctCount
- use dropDuplicateds instead distinct before join or group by
- udfs
- 多维度并行
- spark 包含三个维度的并行度
- driver 并行度
- horizontal
- executor
- 检查不同的执行计划
-
软件设计师考试中问题的问答
软件设计师考试中问题的问答记录
-
计算机漫游
** 以下总结都为个人学习的临时笔记,仅限于个人当时的理解水平的理解,请勿参考.
- scala databricks 编码规范阅读记录
-
spark 项目调试
基础的项目配置
- 配置git
- 从github 上下载项目,等待maven 下载依赖项
- 下载idea 的scala 插件
- 下载scala,java sdk 以上步骤主要遇到的困难时github和idea 下载项目奇慢的问题(可以通过挂梯子,配国内镜像等解决)
-
Scala线性化算法
layout: post title: “scala 类的线性化算法” date: 2022-08-04 08:25:10 +0800 categories: note tags: scala —
-
spark 源码阅读记录
RelationalGroupedDataset
-
scala 2.12 PreDef 源码阅读记录
- classOf[T] :
stub method
- classOf[T] :
-
Welcome to Jekyll!
You’ll find this post in your
_posts
directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to runjekyll serve
, which launches a web server and auto-regenerates your site when a file is updated. -
1到100亿以内的素数按顺序的IO输出
使用Sieve_of_Eratosthenes 计算素数
-
创建gh-pages站点
大致是按照github blog 文档进行操作.