【问题标题】:Spark DataFrame - group rows based on difference of timestamp using RSpark DataFrame - 使用 R 根据时间戳的差异对行进行分组
【发布时间】:2016-09-20 02:02:37
【问题描述】:

我有一个像这样的 spark DataFrame:

timestamp            userId
2016-07-26 12:05:00   a
2016-07-26 12:05:01   b
2016-07-26 12:05:02   c
2016-07-26 12:05:03   d
2016-07-26 12:05:04   e
2016-07-26 12:05:05   f

我想将相差 5 秒以内的行归为一组,例如:

timestamp            userId   group
2016-07-26 12:05:00   a        1  
2016-07-26 12:05:01   b        1
2016-07-26 12:05:02   c        1
2016-07-26 12:05:03   d        1
2016-07-26 12:05:04   e        1
2016-07-26 12:05:05   f        2

有没有办法在不将 spark DataFrame 转换为 R dataframe 的情况下做到这一点?

【问题讨论】:

  • 既然要在R中处理,就需要在R中使用合适的数据结构,不是吗?
  • 你在使用sparkR吗?哪个版本?
  • @Sotos 是 1.6.2
  • 您将需要使用 Window 函数,但这些函数仅在 Spark 2.0 for SparkR 中实现。
  • @mtoto 你can use window functions in 1.6 很好。但是你不能轻易地将这些应用到这些问题上以获得准确的解决方案和良好的性能。

标签: r apache-spark spark-dataframe sparkr


【解决方案1】:

此特定功能通常称为会话化,网络分析师经常使用它来识别特定用户的会话。 hive 中有内置的 UDF,可以与 sparksqlcontext 一起使用。 例如, https://docs.treasuredata.com/articles/udfs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-13
    • 2015-03-07
    • 2011-01-31
    • 2022-01-15
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多