r data.table groupby присоединиться к pyspark 1.6 - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть следующие таблицы данных (код R):

accounts <- fread("ACC_ID |     DATE   | RATIO | VALUE
                   1      | 2017-12-31 | 2.00  | 8
                   2      | 2017-12-31 | 2.00  | 12
                   3      | 2017-12-31 | 6.00  | 20
                   4      | 2017-12-31 | 1.00  | 5      ", sep='|')

timeline <- fread("    DATE  
                    2017-12-31
                    2018-12-31
                    2019-12-31
                    2020-12-31", sep="|")

В R я знаю, что могу присоединиться к DATE, ACC_ID, RATIO и VALUE:

accounts[, .SD[timeline, on='DATE'], by=c('ACC_ID', 'RATIO', 'VALUE')]

Таким образом, я могу "проецировать" ACC_ID, RATIO и VALUE значения на timeline даты, получая следующую таблицу данных:

 ACC_ID | RATIO | VALUE  |   DATE
    1   |    2  |    8   |2017-12-31
    2   |    2  |   12   |2017-12-31
    3   |    6  |   20   |2017-12-31
    4   |    1  |    5   |2017-12-31
    1   |    2  |    8   |2018-12-31
    2   |    2  |   12   |2018-12-31
    3   |    6  |   20   |2018-12-31
    4   |    1  |    5   |2018-12-31
    1   |    2  |    8   |2019-12-31
    2   |    2  |   12   |2019-12-31
    3   |    6  |   20   |2019-12-31
    4   |    1  |    5   |2019-12-31
    1   |    2  |    8   |2020-12-31
    2   |    2  |   12   |2020-12-31
    3   |    6  |   20   |2020-12-31
    4   |    1  |    5   |2020-12-31

I 'Я очень старался найти что-то похожее с PySpark, но я не смог.Какой должен быть правильный способ решить эту проблему?

Большое спасибо за ваше время.Я очень ценю любую помощь, которую вы можете мне оказать, эта очень важна для меня.

1 Ответ

0 голосов
/ 09 декабря 2018

Похоже, вы пытаетесь сделать кросс-соединение?

spark.sql('''
select ACC_ID, RATIO, VALUE, timeline.DATE
from accounts, timeline
''')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...