2017-11-18 115 views
1

我有一个包含多个列的数据框。如何从火花数据帧的所有列中替换多个字符?

>>> 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) 

回答

2

只要使用正确的正则表达式:

df.withColumn("A", regexp_replace("A", "[{}]", "")) 
+1

我们如何应用上述语句多列一下子?假设我的数据框中有10列。 – Sivaraman