У меня есть фрейм данных, содержащий несколько адресов Mac. Мне нужно отфильтровать адреса Mac, начинающиеся с «ZBB». Я использую решение, которое имеет для меня смысл:
import pyspark.sql.functions as f
dffinal = df.filter(f.col("mac_address").startswith("ZBB") === false)
К сожалению, это решение не работает, поскольку оно не распознает ===, когда я помещаю ==, тогда false не определяется. Я пробую решения из https://sparkbyexamples.com/spark/spark -filter-startwith-endwith-examples /, к сожалению, что-то пошло не так. Может ли кто-нибудь указать мне на рабочее решение?
1 ответ
Логические значения в python начинаются с заглавной буквы, поэтому True
& False
. Python не знает тройного равного ===
.
Вы можете решить вашу проблему так, как сейчас.
df.filter(f.col('mac_address').startswith('ZBB') == False)
Или используйте тильду ~
, которая выполняет побитовое НЕ, но, на мой взгляд, может быть менее читабельной.
df.filter(~f.col('mac_address').startswith('ZBB'))
Похожие вопросы
Новые вопросы
pyspark
Spark Python API (PySpark) предоставляет Python модель программирования Apache Spark.