scala
fazhi-bb
物有本末,事有终始,知所先后,则近道矣。
展开
-
[Eclipse构建maven scala和java项目]
Eclipse构建maven scala项目一、安装环境操作系统:Windows 10Eclipse版本:JVM:1.8Scala版本:2.11.0二、插件安装2.1 安装eclipse scala插件从eclipse marketplace中安装scala插件 在选项卡[Search]中输入scala,安装Scala IDE 4.7.x,根据提示一次安装即可。 2.2 安装m2e-scala插...原创 2018-04-24 09:52:28 · 13206 阅读 · 0 评论 -
[Spark购物篮的关联规则实现]
购物篮分析(Market Basket Analysis,MBA)是一个商品交易中流行的数据挖掘技术,市场营销人员和电子商务人员经常用这个技术来揭示不同商品或商品组合之间的相似度。商品数据挖掘的目标,一般是从庞大的数据集合中提取有趣及有用的关联信息,例如数前千万商品或信用卡销售交易。购物篮分析可以帮助分析人员找出很有可能一起购买的商品,关联规则挖掘则会发现一个交易商品之间的相关性。然...原创 2018-07-07 21:29:19 · 5391 阅读 · 1 评论 -
[Spark RDD转换操作运算子]
Spark RDD转换操作RDD,即弹性分布式数据集,全称为Resilient Distributed Dataset,是一个容错的,并行的数据结构,可以让用户显式地 将数据存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组非常丰富的操作来操作这些数据,如:map,flatMap,filter等转换操作,以及SaveAsTextFile,conutByKey等行动操作。本博客中...原创 2018-07-24 23:30:57 · 7173 阅读 · 0 评论 -
[Spark共同好友查找]
共同好友的概念 在一个庞大的社交网络中,两个互相认识的朋友之间的也会存在共同好友。在这个庞大的社交网络总,对所有的用户对中找到”共同好友”,这是一个复杂及有趣的事情。假设,U为一个用户及其所有好友的一个集合:{U1,U2,U3,…Un},我们要从每组集合(Ui,Uj)(i != j)找出共同好友关系。 在如今的大多数社交网络(Facebook,LinkedIn,QQ)...原创 2018-07-18 21:14:56 · 5109 阅读 · 5 评论 -
[Spark的TopN算法实现]
一、TopN算法 MapRedce中的TopN算法是一个经典的算法,由于每个map都只是实现了本地的TopN算法,而假设map有M个,在归约的阶段只有M x N次运算,这个结果是可以接受的并不会造成性能瓶颈。 MapRedce中的TopN算法在map阶段将使用TreeMap来实现排序,以到达可伸缩的目的。 本文将介绍三种TopN的算法: 1.唯一键的TopN算法,就是...原创 2018-06-09 22:35:54 · 19798 阅读 · 3 评论 -
[Spark中移动平均法的实现]
一、 基本概念 移动平均法是一种简单平滑预测技术,它的基本思想是:根据时间序列资料、逐项推移,依次计算包含一定项数的序时平均值,以反映短期趋势的方法。因此,当时间序列的数值由于受周期变动和随机波动的影响,起伏较大,不易显示出事件的发展趋势时,使用移动平均法可以消除这些因素的影响,显示出事件的发展方向与趋势(即趋势线),然后依趋势线分析预测序列的中短期趋势。 移动平均法的应用...原创 2018-06-24 21:28:19 · 11027 阅读 · 4 评论 -
[使用SparkSQL操作DataFrame]
SparkSql 是一种处理结构化模型数据的Spark模块,它提供了一种叫做DataFrame抽象编程,它也可以作为分布式Sql查询引擎, SparkSql可以从已经安装的Hive服务中读取数据,也可以从RDBMS 数据库中读取数据。 在Spark2.0之后,引入了SparkSession新概念。SparkSession实质上是SQLContext和HiveContext的组合,所以...原创 2018-06-01 20:36:51 · 9361 阅读 · 0 评论 -
[Spark的二次排序的实现]
二次排序原理 二次排序就是首先按照第一字段排序,然后再对第一字段相同的行按照第二字段排序,注意不能破坏第一次排序的结果。二次排序技术 假设对应的Key = K有如下值: (K,V1), (K,V2),…,(K,Vn) 另外假设每个Vi是包含m个属性的一个元组,如下所示: (Ai1,Ai2,…,Aim)在这里我们希望按Ai1对归约器的元组的值...原创 2018-06-05 20:59:56 · 16700 阅读 · 1 评论 -
[Spark的LeftOuterJoin操作]
在编写SQL语句时,大家都比较熟悉的LeftOuterJoinn来关联两个表之间的数据,从而查询到我们想要的结果。在Spark的数据操作中,同样也会经常使用LeftOuterJoin来关联两个数据集。那么,在Spark数据操作中主要有那几种数据集的LeftOuterJoin方法呢? 本文中操作LeftOuterJoin方法时,主要用到的数据为用户表数据和用户订单交易数据,使用Left...原创 2018-06-12 20:56:38 · 16455 阅读 · 0 评论 -
[Scala的协变和逆变]
Scala中协变和逆变主要作用是用来解决参数化类型的泛化问题。由于参数化类型的参数(参数类型)是可变的,当两个参数化类型的参数是继承关系(可泛化),那被参数化的类型是否也可以泛化呢?在Java中这种情况下是不可泛化的,然而Scala提供了三个选择,即协变、逆变和非变,解决了参数化类型的泛化问题。协变和逆变 在Scala语言中,协变和逆变到处可见。如List,Queue等属于协变协变...原创 2018-05-16 20:34:34 · 11960 阅读 · 0 评论 -
[Scala Shell脚本执行]
Scala语言来自于Scalable(可伸缩的),既可以写一些小的脚本,又可以写一写复杂的服务器端的程序。scala支持源文件解释执行,jar执行,各有利弊。本文主要介绍咋Linux系统中Scala的Shell脚本,Scala源文件,Scala的Jar执行方法。一、Shell脚本运行Scala 创建ScalaTest.sh文件,内容如下:#!/bin/shexec scala "...原创 2018-05-19 21:10:57 · 14437 阅读 · 2 评论 -
[Scala隐式转换示例]
一、隐式转换 Scala编程语言中引入了一种叫做隐式类的新特性。隐式类指的是用implicit关键字修饰的类。在对应的作用域内,带有这个关键字的类的主构造函数可用于隐式转换。隐式转换是一项强大的程序语言功能,它不仅能够简化程序设计,也能够使程序具有很强的灵活性。掌握Scala语言隐式转换,了解其隐式转换的作用与原理是很有必要的,否则很难得以应手地处理日常开发中的问题。在Scala编程语言中,...原创 2018-05-13 22:35:00 · 15285 阅读 · 0 评论 -
[Scala高阶函数示例]
在Scala中,可以直接将某个函数作为参数传入其他的函数。带函数参数的函数由于是一个接受函数参数的函数,故被称为高阶函数(High-Order function)。/** * Scala高阶函数示例 */objectHighOrderFunction { /* * greeting就是高阶函数 * name:String类型的一个正常参数 * func:函数类型的一个参数,定义...原创 2018-05-13 09:23:18 · 10951 阅读 · 0 评论 -
[Spark好友推荐]
好友推荐概念 目前大量的社交网站上,它们都有一个共同的特性,就是可以在好友关系的基础上推荐更多的联系人。例如,QQ的“你可能认识的人”特性允许用户查看它们可能联系的人。基本思想就是:如果tom是jack的好友,而tom又是peter的好友,也就是说,tom是jack和peter的共同好友,但是jack和peter可能并不认识你。那么社交网络系统可能就会推荐jack与peter联系,又或...原创 2018-07-20 21:47:58 · 6454 阅读 · 1 评论