自己前面的小练习一直都是在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上面的操作的更多相关文章

  1. SparkR(R on Spark)编程指南 含 dataframe操作 2.0

    SparkR(R on Spark)编程指南 Spark  2015-06-09 28155  1评论 下载为PDF    为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...

  2. SparkR(R on Spark)编程指南 含 dataframe操作

    SparkR(R on Spark)编程指南 Spark  2015-06-09 28155  1评论 下载为PDF    为什么不允许复制 关注iteblog_hadoop公众号,并在这里评论区留言 ...

  3. 将java开发的wordcount程序提交到spark集群上运行

    今天来分享下将java开发的wordcount程序提交到spark集群上运行的步骤. 第一个步骤之前,先上传文本文件,spark.txt,然用命令hadoop fs -put spark.txt /s ...

  4. 如何简单的将手机投屏在windows上(可在电脑上直接操作手机)

    首先附上要使用的scrcpy源地址 接下来是如何使用(我用的是安卓手机+win10): 下载好后,首先使用数据线连接手机到电脑,并且手机需要打开开发人员选项(不知道如何打开的自行百度): 打开到安装s ...

  5. Git同步更新操作GitHub和码云仓库上面的代码

    一.前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃更 ...

  6. 基于python的selenium两种文件上传操作

    方法一.input标签上传     如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方 ...

  7. Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark Streaming简介 1.1 概述 Spark Streaming 是Spa ...

  8. .Spark Streaming(上)--实时流计算Spark Streaming原理介

    Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 http://www.cnblogs.com/shishanyuan/p/474 ...

  9. 【Spark 内核】 Spark 内核解析-上

    Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制.Spark任务调度机制.Spark内存管理机制.Spark核心功能的运行原理等,熟练掌握Spark内核原理,能够帮助我们更 ...

随机推荐

  1. laravel的nginx配置

    最近阅读laravel官方文档 发现了关于nginx的推荐配置 Nginx 如果你使用 Nginx ,在你的网站配置中加入下述代码将会转发所有的请求到 index.php 前端控制器. locatio ...

  2. foxmail6.5 不能收取电子邮件,反复提示输入密码?

    使用foxmail时候报错:-err system resource error,system close connect,code=<1014>,id=<1>重新输入密码吗? ...

  3. 【Angular JS】正确调用JQuery与Angular JS脚本 - 修复Warning: Tired to load angular more than once

    自己正在做一个小网站,使用Angular JS + Express JS + Mongo DB,在开发过程中,遇到一些问题,所以整理出来.希望对大家都有帮助. 这是今天解决的一个问题,Angular ...

  4. lunix重启service network restart错误Job for network.service failed. See 'system 或Failed to start LSB: Bring

    1.mac地址不对 通过ip addr查看mac地址,然后修改cd /etc/sysconfig/network-scripts/目录下的文件里面的mac地址 2.通过以下方法 systemctl s ...

  5. SPFieldLookupValue

    //得到查阅项的值SPWeb web = site.OpenWeb();SPList list = web.Lists["DemoList"];SPListItem item = ...

  6. sap.ui.require in SAP UI5 and require in nodejs

    UI5 例如我需要在controller的onShowHello里通过MessageToast弹一个消息显示在UI上, 我需要先定义我自己的controller,该controller extend自 ...

  7. "提取位于北坡的各类用地面积信息"的程序设计与实现

    "提取位于北坡的各类用地面积信息"的程序设计与实现  程序员:左正康         发表时间:2013/12/20 14:24       代号:黑眼圈的日子 第一步:导入dem ...

  8. 7 MSSQL数据库备份与恢复

    0 MSSQL数据库备份 1 SQLAgent配置 2 设置连接属性 3 输入SA账号密码 4 SQL备份脚本配置 5 生成SQL全量备份脚本 6 生成SQL差异备份脚本 7 修改SQL差异备份脚本 ...

  9. 2018年Linux运维人员必会开源运维工具体系总结

    操作系统:Centos,Ubuntu,Redhat,suse,Freebsd 网站服务:nginx,apache,lighttpd,php,tomcat,resin数据库:MySQL,MariaDB, ...

  10. 使用maven搭建ssm项目配置+tomact

    一.代码自动配置:https://www.cnblogs.com/weibanggang/p/10043201.html 二.手动配置 1.创建好maven项目,在pom.xml配置文件 <!- ...