saprk 算子flatmap
时间: 2023-09-05 07:09:40 浏览: 102
Spark中的flatMap是一个转换算子,它可以用于将输入的RDD中的每个元素转换为多个输出元素。具体而言,flatMap接收一个函数作为参数,该函数将每个输入元素映射为一个或多个输出元素,并将所有输出元素组成一个新的RDD。
下面是一个示例,展示了如何使用flatMap将输入RDD中的每个单词拆分为多个字母:
```python
# 导入必要的模块
from pyspark import SparkContext
# 创建SparkContext对象
sc = SparkContext("local", "flatMapExample")
# 创建输入RDD
input_rdd = sc.parallelize(["Hello", "World", "Spark"])
# 使用flatMap将每个单词拆分为字母
output_rdd = input_rdd.flatMap(lambda word: list(word))
# 打印输出RDD中的元素
print(output_rdd.collect())
```
输出结果为:
```
['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd', 'S', 'p', 'a', 'r', 'k']
```
在上述示例中,flatMap函数将每个单词转换为一个包含字母的列表,然后使用collect函数将所有输出元素收集到一个列表中进行打印。可以看到,输入RDD中的每个单词被拆分为了多个字母。
总结一下,flatMap是一个非常有用的转换算子,它可以在Spark中实现扁平化的转换操作,将一个输入元素转换为多个输出元素。
阅读全文