亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與一組停用詞匹配并替換為 Pyspark 中的空白

與一組停用詞匹配并替換為 Pyspark 中的空白

慕的地8271018 2023-06-27 10:37:21
我在表格中有地址列,如下所示 >>> spark.sql("select add1 from test").show(10,False)+---------------------------+|add1                       |+---------------------------+|PO BOX 1111DUBAI  UAE      ||P.O. BOX 2222DUBAI - U.A.E|+---------------------------+我必須匹配一組單詞并將它們從列中刪除只是為了比較目的我能夠用空格替換單個單詞,如下所示(在本例中為“UAE”)spark.sql("select regexp_replace(add1,'UAE','') from test").show(10,False)+---------------------------+|regexp_replace(add1, UAE, )|+---------------------------+|PO BOX 1111DUBAI           ||P.O. BOX 2222DUBAI - U.A.E|+---------------------------+但我想刪除所有特殊字符和一組停用詞,例如 {'UAE','UAE', 'UA E', 'PO', 'P O'}期望的輸出:spark.sql("select regexp_replace(add1,'UAE','') from test").show(10,False)+---------------------------+|regexp_replace(add1, UAE, )|+---------------------------+|1111DUBAI                  ||2222DUBAI                  |+---------------------------+有人可以幫我實現這個目標嗎,謝謝!
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

以下是您可以如何做到的。希望它能解決您所有的案件。


from pyspark.sql import functions as F


stop_words = {'UAE','U.A.E', 'U A E', 'PO', 'P O', 'BOX'}


df2 = df.withColumn(

    "add1",

    F.regexp_replace(F.col("add1"), r"[^a-zA-Z0-9\s]", "")

)


for stop_word in stop_words: 

    df2 = df2.withColumn(

        "add1",

        F.trim(F.regexp_replace(F.col("add1"), stop_word, ""))

    )


df2.show()


+---------+

|     add1|

+---------+

|1111DUBAI|

|2222DUBAI|

+---------+


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號