преобразовать столбец на основе функции startwith в pyspark - PullRequest
0 голосов
/ 09 июля 2019

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

col

    0     abc-text1
    1     def_text2-

Что я хотел бы сделать с pyspark, так это то, что если мой col начинается с 'abc-', то замените его просто на 'abc' иесли он начинается с 'def_', замените его на def.

Я хотел бы создать функцию для того же.Я новичок в Python и Fairley, поэтому мне нужна помощь в этом.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Для этого вы можете использовать pyspark regexp_replace, см. Код ниже.

# This replaces all - and _
data = [(1,"abc-text1"), (2,"def_text1-")]
df = sqlContext.createDataFrame(data, ["a","b"])
dfe  = df.withColumn("b_1", F.regexp_replace(F.col("b"), "(-|_)", ""))
1 голос
/ 09 июля 2019

Предполагая, что имя вашего столбца - col1, а датафрейм - df,

df = df.withColumn('col1', regexp_replace(col('col1'), "^abc", "abc"))
df = df.withColumn('col1', regexp_replace(col('col1'), "^def", "def"))

Вы можете использовать регулярные выражения (пример здесь: Регулярное выражение для сопоставления строки, начинающейся с "stop" )заменить значение, начинающееся с 'abc' или 'def', на 'def'.

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