我有一个数据框列,其中包含这样的文本
UITableViewDataSource
我想对pyspark进行的操作是,如果我的col以'abc-'开头,然后仅以'abc'替换,如果它以'def_'开头,然后以def替换。
我想为此创建一个函数。我是python和pyspark的新手,因此需要帮助。
答案 0 :(得分:1)
假设您的列名为col1,数据框为df,
df = df.withColumn('col1', regexp_replace(col('col1'), "^abc", "abc"))
df = df.withColumn('col1', regexp_replace(col('col1'), "^def", "def"))
您可以使用正则表达式(例如:Regular Expression to match string starting with "stop")将以'abc'或'def'开头的值替换为'def'。
答案 1 :(得分:1)
您可以为此使用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"), "(-|_)", ""))