我读过几篇关于使用“like”运算符以包含字符串/表达式的条件来过滤spark数据框的问题,但是想知道以下是在所需的期望中使用%s的“最佳实践”条件如下:Pyspark:通过正则表达式使用字符串格式过滤数据框?
input_path = <s3_location_str>
my_expr = "Arizona.*hot" # a regex expression
dx = sqlContext.read.parquet(input_path) # "keyword" is a field in dx
# is the following correct?
substr = "'%%%s%%'" %my_keyword # escape % via %% to get "%"
dk = dx.filter("keyword like %s" %substr)
# dk should contain rows with keyword values such as "Arizona is hot."
注意
我试图让DX的所有行是包含表达my_keyword。否则,对于完全匹配,我们不需要周围的百分号'%'。