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"), "\\*", ""))