spark用shell命令将文档中单词出现次数按降序排列,并写入到hdfs中

1、启动spark(进入spark的bin目录下,输入:./spark-shell命令)

在这里插入图片描述

2、声明一个变量,通过val first=sc.textFile("file:///home/yaozhen/movie.txt");指令从该文档中获取数据,file指的是当前节点的路径下的文档;(生成Rdd)

3、查询文档中内容的行数,first.count;(注意:文档结束后不要换行,否则会多算一行;另外,在上面写文档路径的时候,file后面需要加“///”,否则该方法无法调用);

4、通过val third=first.flatMap(lines => lines.split("\t"));指令将文档类的内容“拍扁”成一个个单词,然后按照“\t”(制表符)的样式切割(注意:split方法中的参数取决于文档中元素是按照怎样的符号分割的。)

5、可以使用 third.collect;指令查询一下生成的Rdd内容的样式。

6、使用val four=third.map(words => (words,1));方法,将文档中的内容按照(key,value)的方式封装,其中value为1;

7、可以使用 four.collect;指令查询一下当前的Rdd内容的样式;

在这里插入图片描述

8、使用val five=four.reduceByKey(_+_);指令将封装好的map中的同一个key下面的value值进行相加;

9、将action完后的数据的key和value位置互换,使用元组中的val six=five.map(res => (res._2,res._1));方法;

10、使用val eight=six.sortByKey(false);方法,将封装好的map按照key的大小进行降序,(sortByKey()默认为升序,参数传入false则为降序);

11、使用val nine=eight.map(ret => (ret._2,ret._1);方法,将map中的key和value位置互换;

12、使用 nine.saveAsTextFile("hdfs://192.168.88.2:9000/res");方法,将运算后的新数据存入hdfs中(记得一定要启动hdfs),res文件夹不需要自己创建,hdfs会自己创建(上传成功后,spark指令不会报错,直接跳入下一行)。成功后,输入hdfs的地址和端口号即可查询数据是否写入。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tuple_Margin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值