通过Spark交互模式执行scala代码

  1. 在cmd中输入spark-shell进入Spark交互模式(前提是已经设置好了Spark环境变量以及path)
    在这里插入图片描述

“Spark’s primary abstraction is a distributed collection of items called a Dataset”
Spark的主要抽象是Dataset的分布式item集合

  1. 读取本地文件内容,返回一个Spark会话对象,文件中每一行作为一个item

val textFile =spark.read.textFile(文件地址)在这里插入图片描述

  1. 调用一些简单的函数对文章内容做一些操作
textFile.count()//计算item个数,也就是文件行数

可见文章行数为108

textFile.first()//返回第一个item内容,也就是第一行的内容

在这里插入图片描述

在这里插入图片描述
4.一些稍微复杂的操作

  1. 计算每一行的词个数,并且返回词数最大的行所包含的词的数量
textFile.map(line=>line.split(" ").size).reduce((a,b)=>if(a>b)a else b)

在这里插入图片描述

  1. 计算文章中每个单词出现的数量
val wordCounts=textFile.flatMap(line=>line.split(" ")).groupByKey(identit).count()
wordCounts.collect()

在这里插入图片描述

  1. 使用过滤器得到包含了Spark的行
val linesWithSpark=textFile.filter(line=>line.contains("Spark")

在这里插入图片描述

  1. 将结果保存在缓存中(Spark区别于Mapreduce的重点,Mapreduce将中间结果转化为文件存储在HDFS中),虽然此时数据比较小,存取比较快,但当数据量很大的时候,性能相比于传统的磁盘存储会提升不少。
linesWithSpark.cache()

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值