apache-spark - 如何使用 pyspark 替换 RDD 中的字符?
问题描述
我有看起来像这样的RDD:
[['M5126', 'M5416', 'Z4789', 'Z01810', 'S060X6D', 'S9032XA', 'S96912A', 'S72002A', 'S61411A', 'W268XXA', 'Y9269', 'Z23'], ['S62639B', 'M25512', 'M1712', 'M25612', 'M62512', 'S39012D', 'S39012A', 'M25511', 'Z98890', '11', '29', 'Z5189']]
如何将逗号替换为波浪号,以便我的 RDD 如下所示:
['M51~ M541~ Z4789~ Z01810~ S060X6D~ S9032XA~ S96912~ S72002A~ S61411A~ W268XXA~ Y9269~ Z23~S62639B~ M25512~ M1712~ M25612~ M62512~ S39012D~ S39012A~ M25511~ Z98890~ 11~ 29~ Z5189']
rdd = rdd.map(lambda row: "~".join([str(cd) for cd in row])).reduce(lambda x,y: "~".join([x,y]))
但它使它变成一个长字符串。
解决方案
只需在连接字符串中添加一个空格...?
result = [rdd.map(lambda row: "~ ".join([str(cd) for cd in row])).reduce(lambda x,y: "~ ".join([x,y]))]
这使
['M5126~ M5416~ Z4789~ Z01810~ S060X6D~ S9032XA~ S96912A~ S72002A~ S61411A~ W268XXA~ Y9269~ Z23~ S62639B~ M25512~ M1712~ M25612~ M62512~ S39012D~ S39012A~ M25511~ Z98890~ 11~ 29~ Z5189']
推荐阅读
- c# - 数据库提供者是否分析和“编译”表达式树?
- c# - 有没有办法从消费项目配置源生成器?
- r - 为速度图添加图例 - 表示值的键字形长度
- message - AnyLogic 消息传递
- amazon-cognito - AWS Cognito 自定义消息触发器 - 阻止消息发送
- spring-boot - 如何使用授权码授予类型通过 Postman 获取访问令牌
- typescript - 如何在打字稿中映射导入
- c# - 使用 PRISM 处理缺失的服务
- python - 如何使用 Python(NLP 或其他)从大量文本中提取自定义数据库长名称?
- reactjs - 创建新项目或编辑现有项目会使列跳转