Написание, где запрос с использованием pyspark на SQL таблицы - PullRequest
0 голосов
/ 20 июня 2019

Я запрашиваю таблицу sql с помощью pyspark.

Если у меня есть таблица sql, которая имеет два столбца (значение isDelayed) , где "значение" равнотипа double и "isDelayed" имеет значение 0 или 1. Как написать запрос, используя запрос агрегации pyspark, который дает сумму "value", когда "isDelayed" равен 1.

I 'мы уже попробовали приведенный ниже код, который выдает ошибку

def __main__(self, data):
    delayedData = data.where(col('isDelayed').cast('int')==='1')
    groupByIsDelayed = delayedData.agg(sum(total))
    return groupByIsDelayed

Я получаю

«Ошибка синтаксиса: неверный синтаксис»

нижелиния

delayedData = data.where(col('isDelayed').cast('int')==='1')

1 Ответ

1 голос
/ 20 июня 2019

заменить data.where(col('isDelayed').cast('int')==='1') на data.where(col('isDelayed').cast('int') == 1)

2 = (оператор равенства в языке python - знак 2 =)
1 без кавычек (потому что вы сравниваетеint, а не строка)

или

data.where("isDelayed=1")

...