Python AWS Athena中的递归字符串匹配和替换
我想从一个表到另一个表进行一些字符串查找,并在AWS Athena中执行字符串替换 以下是一个例子: 品牌办公室 顶级品牌 我想看看brand_和_office表中的代理商是否在top_brands表中的brand中找到,如果是,用brand替换代理商。所需的输出将是这样的Python AWS Athena中的递归字符串匹配和替换,python,sql,replace,presto,amazon-athena,Python,Sql,Replace,Presto,Amazon Athena,我想从一个表到另一个表进行一些字符串查找,并在AWS Athena中执行字符串替换 以下是一个例子: 品牌办公室 顶级品牌 我想看看brand_和_office表中的代理商是否在top_brands表中的brand中找到,如果是,用brand替换代理商。所需的输出将是这样的 ID agency brand 1 PRD ROSEDALE PRD 2 RAINE & HORNE 3 RAY WHITE NORTH RAY WHITE 4
ID agency brand
1 PRD ROSEDALE PRD
2 RAINE & HORNE
3 RAY WHITE NORTH RAY WHITE
4 MCGRATH AVONDALE
5 STONE ONEWA STONE
6 STONE MARRYLAND STONE
7 MILESTONE HOMES
请注意,搜索应在整个单词上进行,这样里程碑房屋就不应映射到STONE。在Python中,我使用两个for循环来实现映射,其中外部循环在代理上,内部循环在品牌上
import pandas as pd
import re
def string_found(string1, string2):
if re.search(r"\b" + re.escape(string1) + r"\b", string2):
return True
return False
df = pd.read_csv('~/data/brand_and_office.csv')
brand_list = pd.read_csv('~/data/top_brands.csv')
for i in range(len(df)):
for brand in brand_list['brand']:
if string_found(brand, df.iloc[i]['agency']):
df.iloc[i]['agency'] = brand
我的问题是:在AWS雅典娜,我该怎么做?我不想仅仅为了解决一个数据清理/转换问题而使用Python,因为它的其余部分都是在Athena中完成的
ID agency brand
1 PRD ROSEDALE PRD
2 RAINE & HORNE
3 RAY WHITE NORTH RAY WHITE
4 MCGRATH AVONDALE
5 STONE ONEWA STONE
6 STONE MARRYLAND STONE
7 MILESTONE HOMES
import pandas as pd
import re
def string_found(string1, string2):
if re.search(r"\b" + re.escape(string1) + r"\b", string2):
return True
return False
df = pd.read_csv('~/data/brand_and_office.csv')
brand_list = pd.read_csv('~/data/top_brands.csv')
for i in range(len(df)):
for brand in brand_list['brand']:
if string_found(brand, df.iloc[i]['agency']):
df.iloc[i]['agency'] = brand