我最近创办了Pyspark,我正在努力找出正则表达式匹配的问题。
对于正则表达式,我已经创建了一个列表,如果在名称列中找到列表中的这些项之一,则添加的列必须为真。此正则表达式匹配不能区分大小写,如下例所示。
我有一个表格,格式如下:
Seqno|名称
1|约翰·琼斯
2|约翰·琼斯
3|约翰·斯通
4|玛丽·怀尔德
5|威廉·沃特
6|史蒂文·沃特
我需要将上面的表格更改为下表的格式。这只是实际表的一小部分,所以很遗憾,硬编码不会减少它。
Seqno|名称|regex
-|-|
1|John Jones|True
2|John Jones|True
3|John Stones|True
4|Mary Wild|False
5|William Wurt|True
6|Steven Wurt|True
下面是创建表的一部分的代码:
regex_list = [john, wurt]
columns = ['seqno', 'name']
data = [('1', 'john jones'),
('2', 'John Jones'),
('3', 'John Stones'),
('4', 'Mary Wild'),
('5', 'William Wurt'),
('6', 'steven wurt')]
df = spark.createDataFrame(data=data, schema=columns)
我已经用.isin和.rlike尝试了许多应用程序,但似乎都不能正常工作。如有任何帮助,我们将不胜感激。
提前谢谢!
1条答案
按热度按时间vddsk6oq1#
使用rlike检查列出的正则表达式中是否有类似的名称。测试发生时可以更改列表和列中的大小写代码如下