先测试搭好的spark集群:

本地模式测试:

在spark的目录下:

./bin/run-example SparkPi 10 --master local[2]

验证成功:

集群模式 Spark Standalone:

spark-shell --master yarn-client  集群模式Spark Standalone

验证成功:

集群模式 Spark on Yarn集群上yarn-cluster模式:

./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster examples/jars/spark-examples_2.11-2.0.2.jar 10

实现一个wordcount将文件导入scala中:

先尝试一下map函数,map不改变数据的结构,但可以对数据进行操作

相当于对每个值,做了乘2的操作。

用空格分隔

将每一行用空格做分隔。

简化,_是通配符,代表每个x

将map之后的数据打平,等价于 lines.map(x=>x.split(" ")).flatten

将每个单词后面加一个“1”字符,

groupby操作

从tuple(forgotten,1)中把第一个单词提出来forgotten作为key,
把整个tuple作为value,收集到一个list中
这样对应的value是一个list里面包含所有对应key的tuple
例:
_1:forgotten -> _2:List((forgotten,1), (forgotten,1), (forgotten,1))
整个list大小就是对应key:forgotten出现的次数

下方的map(x=>(x._1,x._2.length)) 只能用这种形式因为是两个tunple.当中的length也可换成size.

如果不通过list大小来算具体单词的次数(词频):

要将map中读的list中的第二个值相加.,也可以把sum改成reduce(_+_)

reduce(_+_)计算原理:
 List(1, 1, 1) ((1+1)+1)
 sum += x

按数字反向排序:

取前三个:

其他方法:

lines.flatMap(_.split(" "))
.map((_,1))
.groupBy(_._1)
.mapValues(_.size)
返回的是一个Map(dict),key:单词,value:词频 lines.flatMap(_.split(" "))
.map((_,1))
.groupBy(_._1)
.mapValues(_.size)
.toArray
.sortWith(_._2>_._2)
.slice(0,10) sortBy(_._2).reverse == sortWith(_._2>_._2)
_._2表示按照第二个进行排序

mkString(拼接字符串)

正则去取多余的符号

正则:
python import re
p = r'[0-9]+'
p.findall(s)这个是一个数组
p.findall(s)[0] scala:
val p = "[0-9]+".r
val s = "546465sfgidg"
p.findAllIn(s)是一个迭代器
p.findAllIn(s).toArray 将迭代器转为数组形式. p.findAllIn(s).foreach(x=>println(x))
foreach也是扫一遍数据 p.findAllIn(s).mkString("") #变成字符串
mkString("[","","]")
取标点,只取数字和字符
val p = "[0-9a-zA-Z]+".r
lines.flatMap(_.split(" "))
.map(x=>(p.findAllIn(x).mkString(""),1))
.groupBy(_._1)
.mapValues(_.size)
.toArray
.sortWith(_._2>_._2)
.slice(0,10) lines.flatMap(_.split(" ")).map(x=>(p.findAllIn(x).mkString(""),1))

fold函数:

def f(){}
lines.map(f) a.foldLeft(0)(_+_) sum = 0
for i in a:
sum += i
return sum tuple求和
sum = 0
for i in a:
sum += i[1] #1相当于第二个值,相当于scala中的_.__2
return sum a.foldLeft(0)(_+_._2) #_._2是第二个,0没有变.0相当于sum=0

map的嵌套操作;

spark-1的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. Spark RDD 核心总结

    摘要: 1.RDD的五大属性 1.1 partitions(分区) 1.2 partitioner(分区方法) 1.3 dependencies(依赖关系) 1.4 compute(获取分区迭代列表) ...

  3. spark处理大规模语料库统计词汇

    最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...

  4. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  5. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  6. Spark踩坑记——初试

    [TOC] Spark简介 整体认识 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架.最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apach ...

  7. Spark读写Hbase的二种方式对比

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...

  8. (资源整理)带你入门Spark

    一.Spark简介: 以下是百度百科对Spark的介绍: Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方 ...

  9. Spark的StandAlone模式原理和安装、Spark-on-YARN的理解

    Spark是一个内存迭代式运算框架,通过RDD来描述数据从哪里来,数据用那个算子计算,计算完的数据保存到哪里,RDD之间的依赖关系.他只是一个运算框架,和storm一样只做运算,不做存储. Spark ...

  10. (一)Spark简介-Java&Python版Spark

    Spark简介 视频教程: 1.优酷 2.YouTube 简介: Spark是加州大学伯克利分校AMP实验室,开发的通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月 ...

随机推荐

  1. Python基础10_函数

    直接贴笔记 : #!/usr/bin/env python # coding:utf-8 # 定义函数时要写成良好的注释习惯 通常用三个单引号 def test(x): ''' 计算一个y=2*x+1 ...

  2. php源码学习——开篇

    这个系列是对php源码的学习记录.由于本人水平有限,可能并不能写的非常清晰和深入,所以,可能只适合本人阅读:) 初次接触php源码,看到陌生的文件夹和大量的文件,可能会觉得茫然无措.php-inter ...

  3. 新建虚拟机并与XShell连接(配置网卡)

    新建虚拟机并与XShell连接 一.新建虚拟机 下一步 下一步 选择CentOS版本,我的CentOS镜像是6.5版本64位,所以我选择CentOS 6 64. 然后点击下一步 可以自行更改位置,然后 ...

  4. Linux 应用——常用函数(usual function)

    main函数: 新建testmain.c #include <sys/types.h>#include <sys/stat.h>#include <fcntl.h> ...

  5. 20155208徐子涵 Exp4 恶意代码分析

    20155208徐子涵 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使 ...

  6. 4.python字符串格式化

    格式化字符串时,Python使用一个字符串作为模板.模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式.Python用一个tuple将多个值传递给模板,每个值对应一个格式符.py ...

  7. 转载:python list和set的性能比较+两者转换

    两者性能比较(转自http://www.linuxidc.com/Linux/2012-07/66404.htm) 本来是知道在Python中使用Set是比较高效,但是没想到竟然有这么大的差距: ~$ ...

  8. windos下安装django

    一:pip install Django       安装完以后,运行python manager.py runserver 0.0.0.0:8000报错:   1):没有安装Mysql-python ...

  9. @Transactional 可以写在 Controller 方法上面了

    上图  t1  掉用的service 没定义事物环境,但是 在 t1 上面定义了. 依旧可以 在 参数是5 的 时候 ,让 前面的操作级联回滚.  但是 我不建议这么用,除非特殊需求,正常来说事物根据 ...

  10. 第一章 C#入门(Windows窗体应用程序)(二)

    C#窗体应用程序(二) [案例]设计登录界面,效果如下: [案例实现步骤] 1.新建项目(Windows控制台应用程序 文件→新建→项目:选择“项目类型”为Visual C#,“模板”为Windows ...