spark基于win上面的操作
自己前面的小练习一直都是在linux上面写的,可是最近由于要把他迁移到win上面,我在自己的csdn博客有对如何在win上面搭建spark环境做出说明,好了,我们还是先看看
今天的内容吧
1.假如你有一个文件,如果你想实现以前的mapReduce的操作,这个时候,如果我们使用spark则会变的非常的简单,如果你此时的文件是以"\t"进行分割的,那我就可以这
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("UrlCount").setMaster("local")
val sc = new SparkContext(conf)
//rdd1将数据进行切分,元祖中放的是(URL,1)
val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
val f = line.split("\t")
(f(1),1)
})
val rdd2 = rdd1.reduceByKey(_+_)
}
则此时的rdd2,就已经完成了wordCount的操作了
第一个练习(对一个数组进行循环处理)
package cn.wj.test.spark.day03
import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by WJ on 2016/12/30.
*/
object ForeachDemo2 {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("ForeachDemo2").setMaster("local[3]")
val sc = new SparkContext(conf)
val rdd1 = sc.parallelize(List(1,2,3,4,5,6,7,8,9))
rdd1.foreach(println(_))
sc.stop()
}
}

2.第二个练习
package cn.wj.spark.day02
import java.net.URL
import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by WJ on 2016/12/30.
*/
// 这个是以java来进行排序,如果内存过大,可能会出现溢出的操作
object UrlCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("UrlCount").setMaster("local")
val sc = new SparkContext(conf)
//rdd1将数据进行切分,元祖中放的是(URL,1)
val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
val f = line.split("\t")
(f(1),1)
})
val rdd2 = rdd1.reduceByKey(_+_)
val rdd3 = rdd2.map(t=>{
val url = t._1
val host = new URL(url).getHost()
(host,url,t._2)
})
// println(rdd2.collect.toBuffer)
//这个的操作是,将rdd4的3以host的进行分组,软后并在每一个分组的情况下,以value中的第三个数据进行排序
//,并且只取前三个的排序
val rdd4 = rdd3.groupBy(_._1).mapValues(it =>{
it.toList.sortBy(_._3).reverse.take(3)
})
println(rdd4.collect().toBuffer)
}
}

第三个练习
package cn.wj.test.spark.day03
import org.apache.spark.{SparkConf, SparkContext}
import java.net.URL
/**
* Created by WJ on 2016/12/31.
*/
object AddUrlCount3 {
val arr = Array("java.itcast.cn","php.itcast.cn","net.itcast.cn")
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("AppUrlCount3").setMaster("local")
val sc = new SparkContext(conf)
// val rdd1 = sc.textFile("E://Test/itcast.log").map(line =>{
// val f = line.split("\t")
// (f(1),1)
// })
val rdd1 = sc.textFile("E://Test/itcast.log").map( line =>{
val f = line.split("\t")
(f(1),1)
})
val rdd2 = rdd1.reduceByKey(_+_)
val rdd3 = rdd2.map(t=>{
val url = t._1
val host = new URL(url).getHost()
(host,url,t._2)
})
for(ins <- arr){
val rdd = rdd3.filter(_._1==ins)
val result = rdd.sortBy(_._3,false).take(3)
println(result.toBuffer)
}
sc.stop()
}
}

spark基于win上面的操作的更多相关文章
- SparkR(R on Spark)编程指南 含 dataframe操作 2.0
SparkR(R on Spark)编程指南 Spark 2015-06-09 28155 1评论 下载为PDF 为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...
- SparkR(R on Spark)编程指南 含 dataframe操作
SparkR(R on Spark)编程指南 Spark 2015-06-09 28155 1评论 下载为PDF 为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...
- 将java开发的wordcount程序提交到spark集群上运行
今天来分享下将java开发的wordcount程序提交到spark集群上运行的步骤. 第一个步骤之前,先上传文本文件,spark.txt,然用命令hadoop fs -put spark.txt /s ...
- 如何简单的将手机投屏在windows上(可在电脑上直接操作手机)
首先附上要使用的scrcpy源地址 接下来是如何使用(我用的是安卓手机+win10): 下载好后,首先使用数据线连接手机到电脑,并且手机需要打开开发人员选项(不知道如何打开的自行百度): 打开到安装s ...
- Git同步更新操作GitHub和码云仓库上面的代码
一.前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃更 ...
- 基于python的selenium两种文件上传操作
方法一.input标签上传 如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方 ...
- Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark Streaming简介 1.1 概述 Spark Streaming 是Spa ...
- .Spark Streaming(上)--实时流计算Spark Streaming原理介
Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 http://www.cnblogs.com/shishanyuan/p/474 ...
- 【Spark 内核】 Spark 内核解析-上
Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spark内核原理,能够帮助我们更 ...
随机推荐
- ps_cc:制作sprite拼贴图片
我们的目标是: 将 合并为一张图片 step1:制作动作,便于批处理和重复使用 首先随便新建空白文档(建议:90x300px) 录制动作,alt+F9 上图中,可以新建分组前端,再新建动作 ...
- python网络编程-paramiko模块
paramiko模块 该模块基于SSH用于连接远程服务器并执行相关操作 参考文档 SSHClient 用于连接远程服务器并执行命令 import paramiko #创建SSH对象 ssh = par ...
- Linux系统如何设置开机程序自启动
在Linux系统如何让程序开机时自动启动 核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”--& ...
- Python基础学习之标识符
1.合法的Python标识符 Python标识符字符串规则和其他大部分用C编写的高级语言相似: 第一个字符必须是字母或下划线(_) 剩下的字符可以是字母和数字或下滑线 大小写敏感 标识符不能以数字开头 ...
- Bloom Filter (海量数据处理)
什么是Bloom Filter 先来看这样一个爬虫相关问题:文件A中有10亿条URL,每条URL占用64字节,机器的内存限制是4G,现有一个URL,请判断它是否存在于文件A中(爬过的URL无需再爬). ...
- Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)
vimrc增加如下内容即可: vnoremap <M-=> :call Duiqi('\v(^\s*\S+)\s+(.*)')<CR> "reg匹配的第2段文字对齐 ...
- jenkin+centos 7 环境搭建
1.安装jenkins 首先安装好虚拟机和centos7操作系统 2.安装jdk 利用yum源来安装jdk(此方法不需要配置环境变量) 查看yum库中的java安装包 :yum -y list ja ...
- _default_ VirtualHost overlap on port 80, the first has precedence
去掉#NameVirtualHost *:80,然后重启httpd
- 第26章 FMC—扩展外部SDRAM—零死角玩转STM32-F429系列
第26章 FMC—扩展外部SDRAM 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- Strut2 的 Action获取JSP 页面参数的方法
struts2 Action获取表单传值1.通过属性驱动式JSP:<form action="sys/login.action" method="post" ...