【大数据学习 | Spark】spark-shell开发

spark的代码分为两种

  • 本地代码在driver端直接解析执行没有后续

  • 集群代码,会在driver端进行解析,然后让多个机器进行集群形式的执行计算

bash 复制代码
spark-shell --master spark://nn1:7077 --executor-cores 2 --executor-memory 2G
bash 复制代码
sc.textFile("/home/hadoop/a.txt")
org.apache.spark.rdd.RDD[String] = /home/hadoop/a.txt MapPartitionsRDD[1] at textFile at

rdd弹性分布式数据集合

  • 如果是sc调用的方法会在集群中执行
  • rdd调用的方法也会集群执行
bash 复制代码
sc.textFile("/home/hadoop/a.txt")

不是单机代码,但是文件不能再某一个机器上,因为这个命令所有的机器都会执行。

这个路径一定要放在hdfs中

问题:第一行代码就读取了数据,为什么第一行没有出现错误?

spark中的方法算子它是分为两种

  • 转换类算子,定义逻辑,并且调用完毕以后具有返回值的,调用算子以后是不是返回rdd
  • 行动类算子,触发计算,并且没有rdd的返回

代码的整体逻辑是先使用转换类算子定义逻辑 ,但是不执行,一旦使用action算子就会触发运算,整体才执行,这样的设计能够最大化的减少内存的使用。

所以上传hdfs文件,读取

bash 复制代码
hdfs dfs -put /home/hadoop/a.txt /

spark-shell整体代码

bash 复制代码
scala> //在spark-env.sh中配置HADOOP_CONF_DIR,默认会读取hdfs中的文件

scala> sc.textFile("/a.txt")
res6: org.apache.spark.rdd.RDD[String] = /a.txt MapPartitionsRDD[5] at textFile at <console>:26
//放入数据到hdfs中
scala> res6.flatMap(_.split(" "))
res7: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[6] at flatMap at <console>:27

scala> res7.map((_,1))
res8: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[7] at map at <console>:27

scala> res8.groupBy(_._1)
res9: org.apache.spark.rdd.RDD[(String, Iterable[(String, Int)])] = ShuffledRDD[9] at groupBy at <console>:27
//分组完毕的返回值不再是map而是RDD[String,Iterable]
scala> res9.mapValues(_.size)
res10: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[10] at mapValues at <console>:27
//mapValues在scala中只能作用在map集合上,现在可以作用在RDD[k,v]
scala> res10.foreach(println)
//打印数据的时候每个机器都有,因为是分布式执行的
相关推荐
bugcome_com5 小时前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
ebok.6 小时前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai
民乐团扒谱机8 小时前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比
大数据·人工智能·算法·机器学习·数学建模·matlab·组合优化
星野川崎2068 小时前
电商多店运维:云机长期挂机频繁掉线、账号无故风控原因剖析与解决方案
大数据·运维·云计算·电商
小柯南敲键盘9 小时前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
观远数据9 小时前
零售连锁BI选型清单:什么样的场景适合ChatBI,什么样的场景不适合
大数据·人工智能·零售
大大大大晴天9 小时前
实时数仓怎么建:基于 StarRocks 的分层设计与实践
大数据
roman_日积跬步-终至千里11 小时前
【计算资源节省与稳定性治理】自助查询系统请求幂等性设计
大数据
小玮看世界12 小时前
当“安全“变成“教训“:《拟人化暂行办法》时代,AI护栏的过度拒答之困与破局
大数据·人工智能
FserSuN13 小时前
回顾Spark的概念与应用
大数据·分布式·spark