Spark的map和flatmap的区别

在学习Spark时,作者遇到map和flatmap的区别问题。通过实例展示,flatmap在map的基础上进行了flatten操作,将可迭代对象如字符串分解为单个元素。map则保持原数据结构。使用substring和split函数进一步解释了这一区别,flatmap处理数组时会将所有元素压平,而map返回Array[Array[]…]类型。了解这些有助于理解这两个操作符的用途。
摘要由CSDN通过智能技术生成

最近学习spark,然后遇到了这么一个题,有如下数据:

http://bigdata.edu360.cn/laozhang
http://bigdata.edu360.cn/laoduan
http://javaee.edu360.cn/xiaoxu

要统计最受欢迎的老师,然后我就试了一下map和flatmap这两个算子,结果如下:

flatmap的结果
在这里插入图片描述
map的结果
在这里插入图片描述
map得出的结果和我的预期一致,flatmap的结果为什么是单个的字符呢?
然后我就上网去搜资料,看到了一个不错的图(图片来源于链接
在这里插入图片描述
这里说明了flatmap是在map的基础上在做了一次flatten操作。也就是我之前map转换出来的laozhao等字符串属于可迭代的,然后在flatten的操作下变成了一个个字符,当我map转换出来的结果是数字的话,那么就不能执行flatten操作。flatten需要传入的数据类型应该是TraversableOnce类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值