2017-11-18 188 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