Pyspark数据框LIKE运算符

Bab*_*abu 14 pyspark spark-dataframe

Pyspark中LIKE运算符的等价物是什么?例如,我想做:

SELECT * FROM table WHERE column LIKE "*somestring*";
Run Code Online (Sandbox Code Playgroud)

寻找像这样简单的东西(但这不起作用):

df.select('column').where(col('column').like("*s*")).show()
Run Code Online (Sandbox Code Playgroud)

bra*_*raj 28

您可以使用wherecol执行相同的操作.where将用于根据条件过滤数据(这里,如果列是这样的'%string%').在col('col_name')用于表示的条件和like为操作者:

df.where(col('col1').like("%string%")).show()
Run Code Online (Sandbox Code Playgroud)

  • [编辑]答案.不要在评论中添加它. (3认同)

des*_*itb 7

使用spark 2.0.0以后也可以正常工作:

df.select('column').where("column like '%s%'").show()

  • df.select('column')。where('(col(“ foo”)。like(“%s%”)&(col(“ bar”)。like(“%s%”)')'是您在寻找这样的东西吗? (2认同)

yar*_*le8 6

要复制不区分大小写的ILIKE,您可以lower与 结合使用like

from pyspark.sql.functions import lower

df.where(lower(col('col1')).like("%string%")).show()
Run Code Online (Sandbox Code Playgroud)


Bab*_*abu 5

嗯......应该有像regexp这样的sql - >

df.select('column').where(col('column').like("%s%")).show()
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我有用:

import pyspark.sql.functions as f
df.where(f.col('column').like("%x%")).show()
Run Code Online (Sandbox Code Playgroud)