【问题标题】:How to get last N rows of each group in sparklyr?如何在 sparklyr 中获取每组的最后 N 行?
【发布时间】:2020-08-22 18:26:29
【问题描述】:

我有一个包含 id、类别、时间戳、价格列的 spark 数据框。我想按客户 ID 对数据进行分组,按时间戳对类别进行排序,并获取每个组中的最后 n 行。

我尝试了下面的代码,但它只为整体数据重新调整了 3 行。
a <- data1 %>% dplyr::group_by(customer_id, category) %>% dplyr::arrange(dplyr::desc(timestamp)) %>% head(., n = 3)

请提出一个有效的解决方案

【问题讨论】:

    标签: r dplyr tidyverse sparklyr


    【解决方案1】:

    没有示例数据,我们无法知道这是否可行。

    Base R

    data1 <- data1[order(data1$timestamp),]
    lapply(split(data1,data1$customer_ID), tail, n=5)
    

    【讨论】:

    • 我可以直接使用 dplyr::top_n 在 R 中实现,但我希望在 sparklyr 中实现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2013-01-17
    相关资源
    最近更新 更多