2016-05-23 187 views
2

这是我用来删除“。”的命令。从在火花一阶DF列数据,是工作的罚款在scala中删除数据框中的数据空格spark

rfm = rfm.select(regexp_replace(col("tagname"),"\\.","_") as "tagname",col("value"),col("sensor_timestamp")).persist() 

但这不是努力消除在同一列数据

rfm = rfm.select(regexp_replace(col("tagname")," ","") as "tagname",col("value"),col("sensor_timestamp")).persist() 

没有错误前导空格。它只是无法删除任何前导空格,我看到在数据

输入:rfmshow()

+--------------------+-----+----------------+ 
|   tagname |value|timestamp  | 
+--------------------+-----+----------------+ 
| P.A    |101.5| 1.409643313E12| 
| P.A    |100.5| 1.409643315E12| 
| P.A    |100.5| 1.409644709E12| 
|P.B     | 0.0| 1.40964471E12| 

输出:

+--------------------+-----+----------------+ 
    |   tagname |value|timestamp  | 
    +--------------------+-----+----------------+ 
    | P_A    |101.5| 1.409643313E12| 
    | P_A    |100.5| 1.409643315E12| 
    | P_A    |100.5| 1.409644709E12| 
    |P_B     | 0.0| 1.40964471E12| 
+0

它为我,所以你能准备一些假/测试数据,执行'rfm.show()'和粘贴到这里你得到的输出? –

回答

3

你必须提供一个模式不仅仅是空间。提供如下。

regexp_replace(col("tagname"),"\\s+"," ") 

\s+是一个以上的空间,多了一个额外的\是为了躲避\在\s里面方法。