- 博客(8)
- 收藏
- 关注
原创 Scala-对象、Case Class和Trait
对象Object是一个类类型,只能有不超过1个实例,是“单例对象”。不能用new创建,只需要按名直接访问。首次访问时在当前JVM中自动实例化,也就是说在首次访问前,它并不会实例化。对象可以扩展另一个类,不过反之不成立。最适合对象的方法是纯函数和处理外部IO。纯函数:返回完全由其输入计算得到的记过,没有副作用,在引用方面是透明的。IO是处理外部数据的函数。伴生对象Companion Object是与类同名的一个对象,与类在同一个文件中定义。伴生对象和类可以认为是单个单元,可以互
2020-06-02 14:11:37
526
原创 Scala-类
类(Classes)是面向对象语言的核心。是数据结构和函数(“方法”)的组合。java.lang.Object类是JVM中所有实例的根,包括Scala,实际上等价于Scala根类型Any。类参数可以用来初始化字段的值,或用于传入函数,但是一旦类已经创建,这些参数就不再可用。在类参数前面增加关键字val或者var,类参数可以直接成为类的一个字段。Scala类型推导特性:可以查找一个或多个实例的基本公共类型。定义类语法:class [extends ] [{fields,methods,
2020-06-02 14:10:59
154
原创 Scala函数
函数尽量使用纯函数有一个或多个输入参数只使用输入参数完成计算返回一个值对于相同的的输入总返回相同的值不使用或影响函数之外的任何数据不受函数之外的任何数据的影响等价于数学中的函数更稳定、无状态、与外部数据正交定义函数def (:,[,…]): = 最后一行将成为表达式的返回值如需要提早结束可使用return返回用空括号定义函数定义和调用无输入的函数,可使用空括号def ()[:] = 对于没输入的函数,约定:如果函数有副作用(会修改其范围之外的数据),定义应
2020-05-25 22:57:43
179
原创 Scala数据类型
值不可变有类型的存储单元使用val声明可显式类型覆盖scala的自动类型推导变量可变使用var声明更倾向于用值,因为值作为不可变的值更稳定,更具有可预测性命名使用Camel Case写法:小写字母开头,剩余单词首字母大写类型数值类型ByteShortIntLongFloatDoubleScala可自动低等级到高等级(从上往下)进行转换正是Java同名的包装器Scala不支持从高等级到低等级的自动转换:从存储空间较大的类型转换为存储空间变小的类型会
2020-05-25 22:57:06
232
原创 Spark调优技巧总结
Spark 调优避免创建重复RDD同一份数据只创建一个RDD避免重复计算尽量复用同一个RDD数据存在包含关系或者重复的情况下尽量复用RDD避免重复计算对多次使用的RDD进行持久化由于RDD是惰性计算,执行RDD需要从源头算起,因此可以对多次重复使用的RDD进行Persist或者Cache,将当前RDD保存到内存或者磁盘中避免重复计算持久化级别后缀_2(如MEMORY_ONLY_2)表示将每个持久化数据复制1份duplicate选取持久化策略:具体根据内存估计去选择尽量避免
2020-05-21 17:07:03
901
1
原创 Wide & Deep论文阅读笔记
IntroductionMemorization记忆能力(Wide):可以简单定义为学习item和features的共同出现频率以及在历史数据中的协同关系。Generalization泛化能力(Deep):可以简单认为是基于相关关系的传递性去发掘在历史没出现过或者很少出现新的特征组合。Wide & Deep LearningWide部分Wide部分是形式为y=wTx+by...
2019-09-11 15:32:16
408
原创 Factorization Machines ---- FM模型论文阅读笔记及相关推导
Introduction在类似协同过滤的场景下,SVM的作用不如一些如PARAFA等直接进行矩阵因子分解的模型。Why:因为在含有大量稀疏数据的场景下,SVM不能从复杂的核空间中学到可靠的超平面。FM的优点:能在高维稀疏数据的场景下进行参数估计(SVM并不擅长)。能关联变量间的相互作用。线性的计算时间,线性的参数量可以使用任意实数域的特征向量进行预测(其他因子分解模型对输入数据非...
2019-09-07 21:22:56
1019
2
翻译 在Spark Streaming中使用Hbase进行lookup实时读取
翻译自:HBase lookup in Spark Streaming简介在Spark Streaming应用中,HBase可用于处理流式数据过程中每个Batch进行lookup数据的高速缓存,对这个缓存的查询是在每条Spark Streaming新到的消息的基础上去进行的。由于Spark Streaming是微批次(micro-batching)架构,有两种方法去完成这个需求:在每个微...
2019-08-23 16:14:49
954
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人