如何使用 pyspark 替换 RDD 中的字符?
How do I replace a character in an RDD using pyspark?
我有这样的 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]))
但它会变成一长串。
只需在连接字符串中添加一个 space...?
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']
我有这样的 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]))
但它会变成一长串。
只需在连接字符串中添加一个 space...?
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']