You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从RDD中映射提取指定的第2列和第8列?

解决RDD提取指定两列的问题

要仅提取第2列(对应索引1)和第8列(对应索引7),可以在map的lambda函数中直接指定这两个索引,将它们封装成列表或元组返回即可:

# 提取为列表形式
DefenseList = noHeader.map(lambda x: [x.split(",")[1], x.split(",")[7]])
DefenseList.collect()

# 或者提取为元组(更节省内存)
DefenseList = noHeader.map(lambda x: (x.split(",")[1], x.split(",")[7]))
DefenseList.collect()

如果担心重复调用split影响效率,可以先拆分一次再取值:

# 多行lambda写法(需注意语法格式)
DefenseList = noHeader.map(lambda x: (lambda p: [p[1], p[7]])(x.split(",")))

原理很简单:x.split(",")会把每行数据拆分成列的列表,Python列表采用0索引,第2列对应索引1,第8列对应索引7,直接选取这两个位置的元素并组合成新结构,就能得到只包含目标两列的RDD。

内容的提问来源于stack exchange,提问作者Osita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:50:29