Spark wordcount

在这里插入图片描述

val file=sc.textFile(“D:/BigDataTools/helloworld.txt”)
//内置对象sc,去加载一个文件
//懒加载,不会立即去加载file这个文件,所以这一步文件名写错了也不会报错
val rdd=file.flatMap(line=>line.split(" “)).map(word=>(word,1)).reduceByKey(+)
//它也不会立即执行。
rdd.collect()
rdd.foreach(println)
在这里插入图片描述
分步执行
//val rdd1=file.flatMap(line=>line.split(” "))flatMap执行的操作是按空格分割,形成一个列表
在这里插入图片描述

//val rdd2=rdd1.map(word=>(word,1)) map操作是按照键值对的形式显示
在这里插入图片描述
//val rdd3=rdd2.reduceByKey(+)
在这里插入图片描述

实验二:
import scala.math.random

val num=500000;
val numRdd=sc.parallelize(1 to num)
val count=numRdd.map{
n=>{
val x=random2-1
val y=random
2-1
if(xx+yy<1)
1
else
0
}
}reduce(+)
println(4.0*count/num)
在这里插入图片描述

http://localhost:4040/jobs/
在这里插入图片描述

实验三:数据去重
val rdd=sc.makeRDD(Array(“2012-3-7 a”,“2012-3-7 a”,“2012-3-7 b”,“2012-3-7 a”,“2012-3-7 b”))
rdd.filter(_.trim().length>0).map(line=>(line,trim,"")).groupByKey().sortByKey().keys.collect
.foreach(println)

rdd.distinct().foreach(println)
在这里插入图片描述

如何编译执行?
在spark shell中是测试
真正写代码是需要编译的,需要sbt这个工具
配置文件
test.sbt
name:=

WordCount.scala
import org.apache.spark

cd到代码的路径下

实验四:流计算
sparkstreaming

import org.apache.spark.streaming._

val ssc=new StreamingContext(sc,Seconds(10))

val lines=ssc.textFileStream(“file:///D://BigDataTools”)

val words=lines.flatMap(.split(" "))
val wordCount=words.map(x=>(x,1)).reduceByKey(
+_)
wordCount.print()
ssc.start()
ssc.awaitTermination()
到目录中修改新增文件,就会把这些变化给找出来
在这里插入图片描述

真实案例
jupyter在网页上写代码并执行
customer表
category表
product表
order表
order_items表
scala写的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值