Pyspark UDF для удаления чисел из строкового адресаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyspark UDF для удаления чисел из строкового адреса

Сообщение Anonymous »

Код: Выделить всё

def num_removal (address):
import re
if not address:
return address

else:
clean address=address

List [ 'FLATNO', 'FLAT NO', 'FLAT.NO', 'FLAT. NO', 'FLAT NUMBER', 'FL',

'FLAT NUMBER', 'FLAT.NO', 'FLAT. NO', 'FLAT-NO', 'FLNO', 'FL NO',

'HOUSE. NO', 'HOUSE NO', 'HNO', 'Η NO', 'H.NO', 'H. NO', 'HOUSE NUMBER',

'PLOT NUMBER', 'PLOT.NO', 'PLOT. NO', 'PLOT-NO, PLOT NO', 'PLOT', 'P NO', 'P.NO', PNO,

'DOOR NO', 'DOOR-NO', 'DOOR.NO', 'DOORNO',

'DUPLEX NO', 'DUPLEX-NO', 'DUPLEX.NO', 'DUPLEXNO',

'ROOM NO','ROOM.NO', 'ROOM. NUMBER', 'ROOM NUMBER', 'QTR NO', 'NO.']

for keyword in List:

if keyword in address:

start_index= address.index(keyword)

end_index=start_index len (keyword) - 1

if "," in address [end_index+1:end_index+6]:

comma_index=address.index(",")

clean_address =address[:end_index+1]+re.sub(r'\d', address[end_index+1:comma_index])+address[comma_index:]

clean_address=clean_address.strip()

logic=1.1

else:
clean_address address[:end_index+1]+re.sub(r'\d',' ', address [end_index+1: end_index+6])+address(end_index+6:]

clean_address=clean_address.strip()

logic=1.2

else:
clean_address=address
logic=2.0
return clean_address,logic

num_removal=udf(PII_removal, returnType=StructType([ StructField("new_string", StringType(), True), StructField("new_double", DoubleType(), True)]))

df=df.withColumn('processed_daata',num_removal(df['address'])

значение адреса — «HOUSE NO 377 BLOCK-85 DIZ AREA 1 GOLE MARKET NEW DELHI, NEW DELHI, DELHI, INDIA, 11001»
с выше значение
udf помечает его логикой 2.0
Выше UDF не может найти НОМЕР ДОМА по адресу
любая модификация, необходимая в UDF для поиска лучшего соответствия подстроки< /п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... ng-address
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»