通过Spark交互模式执行scala代码
在cmd中输入spark-shell进入Spark交互模式(前提是已经设置好了Spark环境变量以及path)“Spark’s primary abstraction is a distributed collection of items called a Dataset”Spark的主要抽象是Dataset的分布式item集合读取本地文件内容,返回一个Spark会话对象,文件中每一行作为一个i
·
- 在cmd中输入spark-shell进入Spark交互模式(前提是已经设置好了Spark环境变量以及path)

“Spark’s primary abstraction is a distributed collection of items called a Dataset”
Spark的主要抽象是Dataset的分布式item集合
- 读取本地文件内容,返回一个Spark会话对象,文件中每一行作为一个item
val textFile =spark.read.textFile(文件地址)
- 调用一些简单的函数对文章内容做一些操作
textFile.count()//计算item个数,也就是文件行数

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


4.一些稍微复杂的操作
- 计算每一行的词个数,并且返回词数最大的行所包含的词的数量
textFile.map(line=>line.split(" ").size).reduce((a,b)=>if(a>b)a else b)

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

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

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

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



所有评论(0)