示例一:统计所有单词出现的次数

1、在本地创建文件并上传到hdfs中

#vin data.txt
//将文件上传到hadoop的根目录下
#hdfs dfs -put data.txt /

2、在spark中,创建一个RDD并读取文件

%spark
var data = sc.textFile("/data.txt")
data.collect

3、将读取到的文本使用flatMap方法(数据流映射)组合split方法拆分为单个单词

//注意:split("")引号中没有空格是以单个字母的形式拆分
val splitData = data.flatMap(line => line.split(" "))
splitData.collect

4、对每个单词执行映射k-value,k是具体的单词,value都设置为1

var mapData = splitData.map(word => (word,1))
mapData.collect

5、使用reduceByKey()方法进行聚合累加并输出结果

var reduceData = mapData.reduceByKey(_+_)
reduceData.collect

示例二:统计指定单词出现的次数

//统计本文中"is"出现的次数
data.filter(line => line.contains("is")).count()

示例三:(更复杂的RDD操作)找到文本的一行中最多的单词数量

data.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)

 tip:对于大型数据,可以将数据先加入缓存

例如:

data.cache()
data.count()

 

Spark——统计文本中单词出现的次数的更多相关文章

  1. shell统计文本中单词的出现次数

    Ubuntu14.04 给定一个文本,统计其中单词出现的次数 方法1 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.t ...

  2. java统计文本中单词出现的个数

    package com.java_Test; import java.io.File; import java.util.HashMap; import java.util.Iterator; imp ...

  3. Linux统计文件中单词出现的次数

    grep -E "\b[[:alpha:]]+\b"  /etc/fstab  -o | sort | uniq -c 或 awk '{for(i=1;i<NF;i++){c ...

  4. Python 统计文本中单词的个数

    1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...

  5. python统计文本中每个单词出现的次数

    .python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...

  6. N个任务掌握java系列之统计一篇文章中单词出现的次数

    问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...

  7. C#统计给定的文本中字符出现的次数,使用循环和递归两种方法

    前几天看了一个.net程序员面试题目,题目是”统计给定的文本中字符出现的次数,使用循环和递归两种方法“. 下面是我对这个题目的解法: 1.使用循环: /// <summary> /// 使 ...

  8. Python的 counter内置函数,统计文本中的单词数量

    counter是 colletions内的一个类 可以理解为一个简单的计数 import collections str1=['a','a','b','d'] m=collections.Counte ...

  9. Linux统计文本中某个字符串出现的次数

    常用的有如下两种方式: 1.VIM 用vim打开文件,然后输入: :%s/hello//gn 如下图: 图中的例子就是统计文本中"hello"字符串出现的次数 说明: %s/pat ...

随机推荐

  1. Pytest_fixture(9)

    什么是fixture fixture是pytest特有的功能,使用装饰器 @pytest.fixture 标记的函数在其他函数中能被当作参数传入并被调用. fixture有明确的名字,在其他函数,模块 ...

  2. JMeter_用户自定义变量

    在实际测试过程中,我们经常会碰到脚本开发时与测试执行时的服务地址不一样的情况,为了方便,我们会把访问地址参数化,当访问地址变化了,我们只需要把参数对应的值改动一下就可以了. 一.添加用户自定义变量元件 ...

  3. MySQL 截取小数位数

    项目中遇到一些有关小数位数截取的问题,留下痕迹,以便后续使用时注意:个人推荐使用方法2),直接四舍五入 1)select FORMAT(1478568.2457,2): 查询出来的结果为: ,每隔3位 ...

  4. [ flask ] 解耦models(解决models文件太臃肿的问题)

    问题描述 用博客项目来描述,我们在models中定义了用户表(User).文章表(Post).通知表(Notification).等等.随着我们开发的深入,添加的功能越来越多,到后期models文件会 ...

  5. [ unittest ] 使用初体验

    import unittest from cal import Calculate class Mytest(unittest.TestCase): def setUp(self): self.cal ...

  6. 华为云 Kubernetes 管理员实训 四 课后作业

    练习一 创建一个Service和一个Pod作为其后端.通过kubectl describe获得该Service和对应Endpoints的信息. Service的名称为<hwcka-004-1-s ...

  7. js字符串数组['1','2','3']转number

    let arr = ['1','2','3']; arr.split(',').map(Number);

  8. Java实现单词统计

    原文链接: https://www.toutiao.com/i6764296608705151496/ 单词统计的是统计一个文件中单词出现的次数,比如下面的数据源 其中,最终出现的次数结果应该是下面的 ...

  9. Linux内核模块学习

    注:本文是<Linux设备驱动开发详解:基于最新的Linux 4.0内核 by 宋宝华 >一书学习的笔记,大部分内容为书籍中的内容. 书籍可直接在微信读书中查看:Linux设备驱动开发详解 ...

  10. 【刷题-LeetCode】201 Bitwise AND of Numbers Range

    Bitwise AND of Numbers Range Given a range [m, n] where 0 <= m <= n <= 2147483647, return t ...