【问题标题】:r data.table groupby join in pyspark 1.6r data.table group by 加入 pyspark 1.6
【发布时间】:2018-12-09 05:37:28
【问题描述】:

我有以下数据表(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 日期上“投影”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 类似的东西,但一直没能找到。解决这个问题的适当方法应该是什么?

非常感谢您的宝贵时间。非常感谢您能给我的任何帮助,这对我很重要。

【问题讨论】:

    标签: r join pyspark data.table


    【解决方案1】:

    您似乎正在尝试进行交叉连接?

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

    【讨论】:

    • 就是这样!不知道为什么我认为这不是交叉连接,我几乎就在那里......非常感谢:D
    • @sneaky_lobster 考虑输出中的预期行数可能会有所帮助。如果您期望 nrow(x) * nrow(i) 行,那就是交叉连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多