Scala
定格我的天空
专注于Java分布式、微服务开发
展开
-
Scala编程之Actor
概述什么是Actor?一个actor是一个容器,它包含 状态, 行为,信箱,子Actor 和 监管策略,所有这些包含在一个ActorReference(Actor引用)里。一个actor需要与外界隔离才能从actor模型中获益,所以actor是以actor引用的形式展现给外界的。Scala的Actor类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所...原创 2019-04-11 14:04:46 · 297 阅读 · 0 评论 -
Spark实现自定义累计器
前述Spark中因为算子中的真正逻辑是发送到Executor中去运行的,所以当Executor中需要引用外部变量时,需要使用广播变量。累机器相当于统筹大变量,常用于计数,统计。注意事项1、能不能将一个RDD使用广播变量广播出去?不能,因为RDD是不存储数据的。可以将RDD的结果广播出去。2、 广播变量只能在Driver端定义,不能在Executor端定义。3、 在Driver端可以修改...原创 2019-05-29 13:55:23 · 217 阅读 · 0 评论 -
Spark SQL实现自定义聚合函数
概述spark自定义聚合函数需要继承一个抽象类UserDefinedAggregateFunction,并需要重写属性和方法:inputSchema:函数的参数列表,不过需要写成StructType的格式bufferSchema:中间结果的类型,比如求和时,a、b、c相加,需要先计算a+b并保存结果ab,然后计算ab+c,这个ab就是中间结果。dataType:返回值结果类型,显示是Da...原创 2019-05-29 15:39:56 · 1188 阅读 · 0 评论 -
Spark实现ALS最小二乘法
ALS算法流程:初始化数据集和Spark环境切分测试机和检验集训练ALS模型验证结果检验满足结果,直接推荐商品,否则继续训练ALS模型数据集的含义数据根式 用户ID,产品ID,评分1,11,21,12,31,13,11,14,01,15,12,11,22,12,22,13,22,14,12,15,43,11,23,12,33,13,13,14,03...原创 2019-06-24 14:23:09 · 651 阅读 · 0 评论