Pyspark заменяет строки в колонке данных Spark
Я хотел бы выполнить некоторые основные операции на столбце Spark Dataframe, заменив подстроки. Какой самый быстрый способ сделать это?
В моем текущем случае использования у меня есть список адресов, которые я хочу нормализовать. Например, этот фреймворк данных:
id address
1 2 foo lane
2 10 bar lane
3 24 pants ln
Станет
id address
1 2 foo ln
2 10 bar ln
3 24 pants ln
Ответы
Ответ 1
Для Spark 1.5 или более поздней версии вы можете использовать пакет функций:
from pyspark.sql.functions import *
newDf = df.withColumn('address', regexp_replace('address', 'lane', 'ln'))
Краткое описание:
- Функция
withColumn
вызывается для добавления (или замены, если имя существует) столбца в фрейм данных. - Функция
regexp_replace
будет генерировать новый столбец, заменив все подстроки, соответствующие шаблону.
Ответ 2
Для скалы
import org.apache.spark.sql.functions.regexp_replace
import org.apache.spark.sql.functions.col
data.withColumn("addr_new", regexp_replace(col("addr_line"), "\\*", ""))