当前位置: 首页 > 面试题库 >

通过Spark组查找时间戳的最小值

潘志国
2023-03-14
问题内容

当我尝试将我的数据框分组到一个列上,然后尝试查找每个分组的最小值时,groupbyDatafram.min('timestampCol')似乎无法在非数字列上执行此操作。然后,如何正确过滤分组依据上的最短(最早)日期?

我正在从Postgresql S3实例流式传输数据帧,因此已经配置了数据。


问题答案:

只需直接执行聚合,而不使用min辅助程序即可:

import org.apache.spark.sql.functions.min

val sqlContext: SQLContext = ???

import sqlContext.implicits._

val df = Seq((1L, "2016-04-05 15:10:00"), (1L, "2014-01-01 15:10:00"))
  .toDF("id", "ts")
  .withColumn("ts", $"ts".cast("timestamp"))

df.groupBy($"id").agg(min($"ts")).show

// +---+--------------------+
// | id|             min(ts)|
// +---+--------------------+
// |  1|2014-01-01 15:10:...|
// +---+--------------------+

min与之不同的是,它将适用于任何Orderable类型。



 类似资料:
  • 问题内容: 我有每个都有关系的模型,其中可能包含类似的内容: 当然可以有更优雅的格式,但是接下来的问题是:如何通过elasticsearch(tire)查找开着的Shop? 所有的想法都会被感动!谢谢! 找到的解决方案: 为每天(星期日,星期一,..)创建单独的索引 每天从以下位置构建完整的分钟列表: 添加过滤器进行搜索: 这个解决方案也可以,但是看起来很麻烦,因为如果每天工作8个小时,我创建的数

  • 我在尝试从时间戳查找数据中的值时出错。我的df有一个时间戳索引。 我的时间戳是: 我的df索引是这样的: 使用index.get_loc函数: 错误是: 我看到这个错误可能来自于数据帧的串联和索引的冲突,但这里的情况并非如此。有什么想法吗?

  • 我正在尝试获取时间戳不到10秒前的所有mongo db文档。我找不到。我想这是因为我的时间格式不正确。我没有发现他们从shell db查询mongo db。mgo。查找过去24小时的({timestamp:{$gt:new Date(ISODate().getTime()-86400)})。 如果我选择文档ObjectId(“…”)中的一个。getTimestamp()它显示的是ISODate(“

  • 所以...我有:int array[]={-8,2,0,5,-3,6,0,9}; 我想找到一个最小的正数(在上面的列表中是2)

  • 给定一个非负整数数组,设计最简单的算法来找到最大大小的子数组,并将其加到最小的值。 我的想法是,因为它们是非负整数,所以和最小的数组总是单个单元数组,只有原始数组的最小值。如果我理解正确的话,它取决于什么具有更高的优先级,具有更高的长度或更小的值。然而,这个问题从来没有明确说明哪一个优先。 我在这个问题上是正确的,还是我遗漏了什么?

  • 我对这个问题有意见。对于这个问题,我将编写一个与超类交互的子类。 某公司用多种方法编写了一个大类银行账户,包括: 方法/构造函数和描述: < Li > public BankingAccount(Startup s)使用Startup对象中的信息构造一个banking account对象 公共作废借方(借方d)记录给定的借方 公共无效信用(信用c)记录给定的信用 < li>public int g