Spark---WordCount1

mac2024-04-12  29

1: 在根目录下创建b.txt文件  文件内容如下

 

[root@hdp-1 ~]# more b.txt hello me hello you hai me

2:进入到Spark的交互页面(spark-shell) 进入到Scala命令下

[root@hdp-1 ~]# apps/spark-2.4.4-bin-hadoop2.7/bin/spark-shell

注意:Spark shell (交互式命令行)里面可以写spark程序,方便学习和测试 其也是一个客户端 用于提交spark应用程序 启动spark shell  第一种方式:bin/spark-shell   在hdp-1:8080网页上 无法查到正在运行的任务(Running Applications)  因为这种启动方式没有指定master的地址,用的spark的local模式运行的(模拟的spark集群运行的过程) 第二种方式:bin/spark-shell --master spark://hdp-1:7077   这样制定了master的地址,那么就会将任务提交到集群,开始时sparksubmit(客户端)要连接Master,并申请计算资源(内存和核数),Master进行资源调度(就是让那些Worker启动Excutor),在准备过程中,这些进程都已经创建好了。

 3:输入以下查询语句 res2:是查询结果

      Spark context available as 'sc'....

      Spark session available as 'spark'   ------->spark2.0推出的编写SparkSQL代替Spark1.6中的SQLcontext和HiveContext 解除之前对Hive的依赖来实现对数据的加载,转换,处理等工作

      sc(spark context)编写spark程序的入口

scala> sc.textFile("/root/b.txt").flatMap(_.split(" ")).map((_,1)).collect res2: Array[(String, Int)] = Array((hello,1), (me,1), (hello,1), (you,1), (hai,1), (me,1), ("",1))

      sc.textFile(" ")指明读哪儿里的文件 

 

scala> sc.textFile("/root/b.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect res4: Array[(String, Int)] = Array((you,1), ("",1), (hai,1), (hello,2), (me,2))

4:降序排列

scala> sc.textFile("/root/b.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(-_._2).collect res5: Array[(String, Int)] = Array((hello,2), (me,2), (you,1), ("",1), (hai,1))

 

最新回复(0)