LIKE运算符在Pyspark中的等价物是什么? 例如,我想这样做:
SELECT * FROM table WHERE column LIKE "*somestring*";
寻找像这样简单的东西(但这不起作用):
df.select('column').where(col('column').like("*s*")).show()
答案 0 :(得分:24)
您可以使用where
和col
功能执行相同操作。 where
将用于根据条件过滤数据(此处,如果列类似'%string%'
)。 col('col_name')
用于表示条件,like
是运算符:
df.where(col('col1').like("%string%")).show()
答案 1 :(得分:7)
使用spark 2.0.0以后也可以正常工作:
df.select('column').where("column like '%s%'").show()
答案 2 :(得分:3)
使用like运算符。
https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#module-pyspark.sql.functions
df.filter(df.column.like('%s%')).show()
答案 3 :(得分:2)
嗯......应该有像regexp这样的sql - >
df.select('column').where(col('column').like("%s%")).show()
答案 4 :(得分:1)
在pyspark中,您始终可以将数据框注册为表格并进行查询。
con.Open();
SqlCommand cmd1 = new SqlCommand("ePMT_SP_BindSupplierDDLToTextBox", con);
cmd1.Parameters.Add(new SqlParameter("@SupplierEmail",ddlSupplier.SelectedItem));
SqlDataReader datareader = cmd.ExecuteReader();
while(datareader.Read())
{
txtSupplierEmail.Text = datareader["SupplierEmail"].ToString();
}
答案 5 :(得分:1)
要复制不区分大小写的ILIKE
,可以将lower
与like
结合使用。
from pyspark.sql.functions import lower
df.where(lower(col('col1')).like("%string%")).show()
答案 6 :(得分:0)
我总是使用UDF来实现这样的功能:
from pyspark.sql import functions as F
like_f = F.udf(lambda col: True if 's' in col else False, BooleanType())
df.filter(like_f('column')).select('column')
答案 7 :(得分:0)
使用spark 2.4
来否定,您只需执行以下操作:
df = df.filter("column not like '%bla%'")
答案 8 :(得分:0)
这对我有用:
import pyspark.sql.functions as f
df.where(f.col('column').like("%x%")).show()