我讀過幾篇關於使用「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。否則,對於完全匹配,我們不需要周圍的百分號'%'。