如何从火花数据帧的所有列中替换多个字符?
问题描述:
我有一个包含多个列的数据框。如何从火花数据帧的所有列中替换多个字符?
>>> df.take(1)
[Row(A=u'{dt:dt=string, content=Prod}', B=u'{dt:dt=string, content=Staging}')]
我想从df列A和B的值中去掉花括号'{'和'}'。我知道我们可以使用:
df.withColumn('A',regexp_replace('A','//{',''))
df.withColumn('A',regexp_replace('A','//}',''))
df.withColumn('B',regexp_replace('B','//}',''))
如何为Spark数据框的所有列动态替换字符? (熊猫版本如下所示)
df = df.replace({'{':'','}':''},regex=True)
答
只要使用正确的正则表达式:
df.withColumn("A", regexp_replace("A", "[{}]", ""))
我们如何应用上述语句多列一下子?假设我的数据框中有10列。 – Sivaraman