Удалить спецсимвол из массива pyspark - PullRequest
1 голос
/ 22 апреля 2020

У меня есть фрейм данных pyspark, содержащий один столбец строки.

Пример df:

number | id
---------------
12     | [12, .AZ, .UI]
------------------------
14     | [CL, .RT, OP.]

Я хочу удалить символ '.'

I попытался использовать regexp_replace:

df = df.select("id", F.regexp_replace(F.col("id"), ".").alias("id"))

Но я думаю, что regexp_replace - хорошее решение для строки, а не массива.

Как удалить этот символ из массива? Спасибо

1 Ответ

2 голосов
/ 22 апреля 2020

В Spark 2.4 или более поздней версии вы можете использовать transform

import pyspark.sql.functions as F
df.withColumn("id",F.expr("transform(id,x-> replace(x,'.',''))")).show()

+------+------------+
|number|          id|
+------+------------+
|    12|[12, AZ, UI]|
|    14|[CL, RT, OP]|
+------+------------+

Рабочий пример:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...