Spark学习笔记

 

绿色为接口,蓝色为具体实现类。

元组Tuple

访问数据 :


val t1=(1,2,"a",true,"b")
println(ti._顺序号)     //用顺序号访问元组第一个元素,从1开始
println(t1.productElement(0))   //访问元组第一个元素,从0开始

列表 List

元素的追加

 

 

RDD-----即一个装数据的容器

是 Spark 提供的最重要的抽象概念,它是一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。

通俗点来讲,可以将 RDD 理解为一个分布式对象集合,本质上是一个只读的分区记录集合。每个 RDD 可以分成多个分区,每个分区就是一个数据集片段。一个 RDD 的不同分区可以保存到集群中的不同结点上,从而可以在集群中的不同结点上进行并行计算。

使用集合创建RDD
sc.makeRDD(List(1,2,3,4))
val rdd=sc.makeRDD(List(1,2,3,4,5,6))

例子:找偶数


2021.04.29
spark.read.json("file:///opt/module/spark-local/examples/src/main/resources/people.json")
spark.read.json("file:///opt/module/spark-local/examples/src/main/resources/people.json").show

val rdd=sc.textFile("file:///opt/module/spark-local/examples/src/main/resources/people.txt")
rdd.collect
import spark.implicits._
case class People(name:String,age:Int)
//---
People("andy",20)
//----
val mapRDD=rdd.map{x=>{val item=x.split(",");People(item(0).trim(),item(1).trim().toInt)}}
//trim 去空格
mapRDD.toDF.show

//sparksql
val df=mapRDD.toDF
df.createOrReplaceTempView("people")
spark.sql("select * from people").show
spark.sql("select * from people where age>20").show

//联合math 和bigdata
df1.createOrReplaceTempView("bigdata")
df2.createOrReplaceTempView("math")
spark.sql("select m.id,(m.score+b.score) from math m,bigdata b where m.id = b.id").show

//df转ds   ---    rdd中间
df=mapRDD.toDF
df.collect
//df --> ds
val ds = df.as[People]
ds.collect
//ds ---> rdd
val r = ds.rdd
r.collect
//rdd  ---> df
val df = r.toDS
df.collect
//可以直接输出
//ds只需要知道名字
ds.foreach(line=>{println(line.name+" "+line.age)})
//df需要知道位置
df.foreach(line=>{println(line.get(0)+" "+line.get(1))})

spark streaming

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值