У меня есть таблица SQL, которая содержит логический столбец.Пример my_table
:
column_1 column_2 column_3 column_4
-----------------------------------------
AA BB CC false
---------------------------------------
CC FF JJ true
Я хочу выбрать только column_1
и column_2
в условии column_4=true
, чтобы создать новый dataset
.
Мой код для извлеченияновый набор данных:
def create_dataset(my_table):
output = (
my_table.select(
F.col('column_1').alias('first_name'),
F.col('column_2').alias('last_name'))
.withColumn('first_name', F.when(F.col('first_name').isin(["NULL", None, ""]), None).otherwise(F.col('first_name')))
.withColumn('last_name', F.when(F.col('last_name').isin(["NULL", None, ""]), None).otherwise(F.col('last_name')))
)
return output
Я добавил фильтр для строк, где у меня есть column_4 is true
.
мой новый код:
def create_dataset(my_table):
output = (
my_table.select(
F.col('column_1').alias('first_name'),
F.col('column_2').alias('last_name')).where("column_4"=true)
.withColumn('first_name', F.when(F.col('first_name').isin(["NULL", None, ""]), None).otherwise(F.col('first_name')))
.withColumn('last_name', F.when(F.col('last_name').isin(["NULL", None, ""]), None).otherwise(F.col('last_name')))
)
return output
Когда я использую где, Я получил эту ошибку:
keyword can't be an expression
Как я могу фильтровать мои данные в соответствии с логическим значением column_4 =true
?Спасибо