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()

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐