pyspark лучший способ удалить управляющие символы из данных во всех столбцах - PullRequest
1 голос
/ 22 января 2020

У меня есть фрейм данных со столбцами, содержащими возврат каретки, перевод строки и вкладки. Я нашел сообщение с решением для pandas:

replace(to_replace=[r"\\t|\\n|\\r", "\t|\n|\r"], value=["",""], regex=True, inplace=<INPLACE>)

, как я могу сделать это в кадре данных искры?

1 Ответ

0 голосов
/ 24 января 2020

Чтобы заменить возврат каретки, перевод строки и табуляцию, вы можете использовать \s

\ s = [\ t \ n \ r \ f \ v]

Во всех ваших столбцах фрейма данных есть код pyspark, который вам необходим для замены:

from pyspark.sql import functions as F

df = spark.createDataFrame([("\ttext1", 'text2\n', 'te\rxt3'), ("text1\t", '\ntext2', 't\rext3')], ['col1', 'col2', 'col3'])

expr = [F.regexp_replace(F.col(column), pattern="\s+", replacement=",").alias(column) for column in df.columns]

df.select(expr).show()

+------+------+------+
|  col1|  col2|  col3|
+------+------+------+
|,text1|text2,|te,xt3|
|text1,|,text2|t,ext3|
+------+------+------+
...