我有列数据,我试图从搜索结果中过滤/省略,但数据与人为错误或没有特定标准不一致。我想要的结果是所有与绿色袜子不相似的数据。
ID search_col
--- -----------
1 Green Socks
2 green Socks
3 green socks
4 Red Socks
5 Greenscocks
6 greenscocks
7 blue socks
在我的WHERE子句中:
Where seacch_col Not like '%Green Socks%'
or search_col Not like '%green socks%'
or search_col Not like '%Green socks%'
答案 0 :(得分:0)
您可以使用类似的查询结合大写或小写:
import pyspark.sql.functions.when,lit
newDF = df.withColumn("col10", when(df["col9"] < 0.5, lit("A")).otherwise(when(df["col9"] > 0.75, lit("C")).otherwise(lit("B"))
或者你可以使用soundex函数:
soundex(search_col)= soundex('red socks')
但是,由于soundex会产生不同的值,如果长度发生变化(例如,如果示例中提到的中间空间缺失或写入scocks而不是袜子,则可能需要添加一个范围:
LOWER(search_col) LIKE '%red%socks%'
答案 1 :(得分:0)
可以使用Levenshtein algorithm方法跟踪模型的人类差异。
请查看here以获取T-SQL实现:使用它,您可以创建一个存储过程并在WHERE子句中使用它,面对两个字符串(您的模型和列值),检查对于整数结果,表示您认为适合您的任务的距离