RDD管道中如何使用map统计每个元组列表的元素个数
RDD map算子统计列表元素长度实现方案
错误原因
- 原代码误用RDD全局
count方法,且错误使用方括号索引[0],不符合语法逻辑 - 需求为统计RDD中每个元素(单条元组列表)的自身长度,无需调用count方法,直接取列表长度即可
正确代码实现
核心逻辑直接对每个RDD元素调用len()统计长度即可:
# 核心统计逻辑 result_rdd = names.map(lambda item: len(item)) # 如果需要取出结果到本地打印 output = result_rdd.collect() print(output)
执行示例
配合给出的输入数据的完整运行流程如下:
# 构造输入RDD(示例) input_data = [ [('John', 'MA'), ('Sam', 'PA')], [('Ryan', 'NM')], [('John', 'DE'), ('Stephanie', 'CA'), ('Courtney', 'ME')] ] names = sc.parallelize(input_data) # 执行统计 output = names.map(lambda item: len(item)).collect() # 输出结果:[2, 1, 3]
内容的提问来源于stack exchange,提问作者wellsinsideout
相关产品推荐
相关产品推荐

