PySpark/Python RDD操作:提取指定字段并组合成目标格式
PySpark RDD:提取并组合指定字段生成目标列表
看你已经成功提取出了名字和对应的角色/赛事字段,现在只需要把这两个字段在同一个map操作里拼接起来就好啦,不用分开处理两个RDD再合并,这样更高效简洁。
解决方案代码
你可以直接在分割后的RDD上,通过一次map操作完成两个字段的拼接:
# 初始化原始RDD m = sc.parallelize(["Dhoni 35 WC 785623","Sachin 40 Batsman 4500","Dravid 45 Batsman 50000","Kumble 41 Bowler 456431","Srinath 41 Bowler 65465"]) # 先分割字符串为列表,再拼接第0位和第2位元素 n = m.map(lambda k: k.split(' ')) result = n.map(lambda s: f"{s[0]} {s[2]}") # 查看最终结果 print(result.collect()) # 输出:['Dhoni WC', 'Sachin Batsman', 'Dravid Batsman', 'Kumble Bowler', 'Srinath Bowler']
或者你也可以把分割和拼接合并成一步,减少中间RDD的生成:
result = m.map(lambda k: f"{k.split(' ')[0]} {k.split(' ')[2]}") result.collect()
这样就能直接得到你想要的目标列表啦。
内容的提问来源于stack exchange,提问作者Spark




