2016-05-23 1 views
2

Это команда, которую я использую для удаления «.». из данных в столбце ф.р. в искрового Скале, который работает отличноУдаление пробелов из данных в столбце dataframe в 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() 

Там нет ошибки. Он просто не в состоянии удалить начальные пробелы, которые я вижу в данных

Input: 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 внутри метода.

Смежные вопросы