Я пытаюсь отфильтровать мой фрейм данных pyspark следующим образом: у меня есть один столбец, который содержит long_text
, и один столбец, который содержит числа.Если длинный текст содержит number
, я хочу сохранить столбец.Я пытаюсь использовать оператор SQL LIKE
, но, похоже, я не могу применить его к другому столбцу (здесь number
) Мой код следующий:
from pyspark.sql.functions import regexp_extract, col, concat, lit
from pyspark.sql.types import *
PN_in_NC = (df
.filter(df.long_text.like(concat(lit("%"), df.number, lit("%"))))))
Я получаю следующую ошибку: Method like([class org.apache.spark.sql.Column]) does not exist
.
Я пытался исправить это несколькими способами (например, создать строку '%number%'
в виде столбца перед фильтром, не используя lit
, using '%' + number + '%'
), но ничего не получалось.Если LIKE
нельзя применить к другому столбцу, есть ли другой способ сделать это?