python - 如何在 Pyspark 中将 Pair RDD Tuple 键转换为字符串键?
问题描述
我创建了如下的rdd
rdd=sc.parallelize([('AA', 44),('BB', 53),(('AA', 'Bb'), 23), (('AD', 'AC'), 23),(('AA', 'BB', 'CC'), 2)])
我想将元组键转换为字符串。
我的预期输出如下所示new_rdd.collect()
:
[('AA', 44),('BB', 53),('AA,Bb', 23),('AD,AC', 23),('AA,BB,CC',2)]
解决方案
map
在rdd
, 并检查每个元组中的键类型,如果键是字符串,则保留键,否则通过 连接键','
:
rdd.map(lambda t: (t[0] if isinstance(t[0], str) else ','.join(t[0]), t[1])).collect()
# [('AA', 44), ('BB', 53), ('AA,Bb', 23), ('AD,AC', 23), ('AA,BB,CC', 2)]
推荐阅读
- azure - Azure - Microsoft azure 是否支持 SFTP
- javascript - 带有嵌套吸气剂的对象?
- spartacus-storefront - 如何在 /cms/pages OCC 端点中填充自定义 cms 组件的自定义属性
- python - FiPy 方程组发散。建议?
- java - RestControllerAdvice 处理 INTERNAL_SERVER_ERROR 时返回两个 JSON 对象
- sql-server - ASP.NET Core 中 SQL 的复选框
- python - 获取无效的会话 ID 错误,对于喜欢的 insta 机器人
- sql-server - 我如何在生产服务器中编译我的存储过程
- javascript - 状态未定义的输入表单反应
- javascript - 为什么我们在 2021 年需要 webpack