4.RDD操作

一、RDD创建

1.从本地文件系统中加载数据创建RDD

  • SparkContext的创建

  • 从文件系统中加载数据创建RDD

  • 与原文件对比

2.从HDFS加载数据创建RDD

  • 启动hdfsstart-all.sh

  • 上传文件hdfs dfs -put 要上传的文件路径 上传目的路径

  • 查看文件hdfs dfs -ls 要查看的文件目录

  • 加载sc.textFile("hdfs://master:9000/user/hadoop/hwt.txt")

  • 停止hdfsstop-all.sh

3.通过并行集合(列表)创建RDD

  • 输入列表、字符串、生成数组

二、RDD操作

转换操作

1.filter(func)

  • 传入lambda匿名函数

  • 显式定义函数

2.map(func)

  • 字符串分词
  • lambda函数

  • 显式定义函数

  • 数字加100
  • lambda函数

  • 显式定义函数

  • 字符串加固定前缀
  • lambda函数

  • 显式定义函数

3.flatMap(func)

  • 分词

  • 单词映射成键值对

4.reduceByKey()

  • 统计词频,累加

  • 乘法规则

5.groupByKey()

  • 单词分组

  • 查看分组的内容

  • 分组之后做累加 map

6.sortByKey()

  • 词频统计按单词排序

7.sortBy()

  • 词频统计按词频排序

  • 查看分区数 getNumPartitions()

  • 生成不同分区数的rdd

8.RDD写入文本文件

  • 写入本地文件系统,并查看结果




  • 写入分布式文件系统,并查看结果



行动操作

1.foreach(print) ----将数据集中的每个元素进行输出


 foreach(lambda a:print(a.upper())) ----将数据集中的每个元素传递到lambda函数中运行


2.collect() ----以数组的形式返回数据集中的所有元素


3.count() ----返回数据集中的元素个数


4.first() ----返回数据集中的第一个元素


5.take(n) ----以数组的形式返回数据集中的前n个元素


6.reduce() ----通过函数func(输入两个参数并返回一个值)聚合数据集中的元素

  • 数值型的rdd元素做累加

  • 与reduceByKey区别

reduce : reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。

reduceByKey : 对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。

posted @   Yeav  阅读(218)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示