Конвертировать SQlite в PySpark SQL - PullRequest
0 голосов
/ 03 мая 2020

У меня есть следующий код, написанный на SQlite SQL.

select min(date_before), count(utc_timestamp) + 1
from (select strftime('%d', utc_timestamp) - lag(strftime('%d', utc_timestamp)) over (order by utc_timestamp) diff
           , strftime('%m', utc_timestamp)                                                                    month
           , strftime('%Y', utc_timestamp)                                                                    year
           , utc_timestamp
           , lag(utc_timestamp) over (order by utc_timestamp)                                                 date_before
      FROM (
               SELECT utc_timestamp, AVG(GB_temperature) as avgt
               FROM weather_data
               GROUP BY strftime('%Y-%m-%d', utc_timestamp)
               HAVING avgt < -4
           )
      order by utc_timestamp)
where diff = 1
group by month, year;

data (csv):

utc_timestamp, GB_temperature
1980-01-01T00:00:00Z, 4.6640

Желаемый результат:

...    
1982-01-10T00:00:00Z
    ... (24 rows)
    1982-01-11T00:00:00Z
...

'1982-01-10T00:00:00Z'
'1982-01-11T00:00:00Z'
'1982-01-14T00:00:00Z'
'1985-01-16T00:00:00Z'
'1985-01-17T00:00:00Z'
'1985-02-12T00:00:00Z'
'1987-01-11T00:00:00Z'
'1987-01-12T00:00:00Z'
'1987-01-13T00:00:00Z'

до:

'1982-01-10T00:00:00Z', 2
'1985-01-16T00:00:00Z', 2
'1987-01-11T00:00:00Z', 3

Как мне переписать его в Spark SQL? Я должен заменить функцию strftime, также у меня есть синтаксическая ошибка в строке 2 после «diff»

какие-либо подсказки?

, если вы знаете, как написать ее на pandas или другом python Инструмент анализа данных может объяснить, пожалуйста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...