首页 文章

r data.table groupby加入pyspark 1.6

提问于
浏览
0

我有以下数据表(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中,我知道我可以加入 DATEACC_IDRATIOVALUE

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

这样,我可以在 timeline 日期"project" ACC_IDRATIOVALUE 值,得到以下数据表:

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

我一直在努力寻找与PySpark类似的东西,但我无法做到 . 什么应该是解决这个问题的适当方法?

非常感谢你花时间陪伴 . 我非常感谢你能给我的任何帮助,这对我很重要 .

1 回答

  • 1

    看起来你正试图进行交叉加入?

    spark.sql('''
    select ACC_ID, RATIO, VALUE, timeline.DATE
    from accounts, timeline
    ''')
    

相关问题