spark 说说轻快灵巧,但开发真的好多东西😕
回顾spark两种算子:
- transformation:是lazy的算子,并不会马上执行,需要等到action操作的时候才会启动真正的计算过程,如map,filter,join。
- action:是spark应用真正执行的触发动作,如count,collect,save等。
一开始我只知道两个算子的概念,并没有实质理解,但最近有点悟到,transformation返回值是一个RDD,而action返回结果或者将结果写入存储
由于spark是基于scala语言的,但没有scala的功底,后期选择java进行开发:
在spark客户端简单的用scala实现了Wordcount:
进入spark客户端:
现在就成功进来啦
在scala中有两种变量
val:常量 如rdd,只读的
var:变量
sc 可以理解冲java中的sparkcontext spark的功能入口
直接跟路径,默认读取的是HDFS上的数据:
调用flatmap方法将数据从hdfs中读取,并通过“ ”切分成字符串,调用map和reduce进行合并
在调用collect就不会报错了:
接下来进入java开发:
Spark-core常用接口介绍:
JavaSparkContext | 是spark的对外接口,负责向调用该类的java应用提供spark的各种功能,相当于一个百宝箱 |
---|---|
SparkConf | Spark应用配置类 如设置应用名称,执行模式,executor内存等 |
JavaRDD<> | 用于在java应用中定义JavaRDD的类 只有值(value) |
JavaPairRDD<> | 表示key-value形式的JavaRDD类,提供的方法有groupByKey,reduceByKey等 以键值对的方式 |
案例一:RDD的创建
案例二:
并行集合:
在运行过程中会由于各种原因报错,一定要对应自己定义的变量个实例,还有部署方式!!!
来源:CSDN
作者:TKE_aoliao
链接:https://blog.csdn.net/surijing/article/details/104541299