当前位置: 首页 > 知识库问答 >
问题:

如何获得每年日期之间的最小,最大和长度?

曹建明
2023-03-14

我有一个rdd类型为rdd[String]的示例,下面是它的一部分:

1990,1990-07-08
1994,1994-06-18
1994,1994-06-18
1994,1994-06-22
1994,1994-06-22
1994,1994-06-26
1994,1994-06-26
1954,1954-06-20
2002,2002-06-26
1954,1954-06-23
2002,2002-06-29
1954,1954-06-16
2002,2002-06-30
...

结果:(1982,52)(2006,64)(1962,32)(1966,32)(1986,52)(2002,64)(1994,52)(1974,38)(1990,52)(2010,64)(1978,38)(1954,26)(2014,64)(1958,35)(1998,64)(1970,32)

I group it nicely, but my problem is this v.size part, I do not know to to calculate that length.

Just to put it in perspective, here are expected results:

It is not a mistake that there is two times for 2002. But ignore that.

共有1个答案

白晋鹏
2023-03-14

定义日期格式:

val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")

及命令:

implicit val localDateOrdering: Ordering[LocalDate] = Ordering.by(_.toEpochDay)

创建一个函数,该函数接收“v”,并返回MAX(date_of_matching_year)-MIN(date_of_matching_year))=长度(以天为单位):

def f(v: Iterable[Array[String]]): Int = {
    val parsedDates = v.map(LocalDate.parse(_(1), formatter))
    parsedDates.max.getDayOfYear - parsedDates.min.getDayOfYear

然后用f(v)替换v.size

 类似资料:
  • 问题内容: 如何在Elasticsearch中计算最大和最小日期之间的小时数(最大和最小相同树级别)? 我的查询: 响应(简短)为 任何人都可以帮助我找出解决方案吗?提前致谢。 问题答案: 您可以利用管道聚合来计算每个存储区的最小值和最大值之间的差异。 只需在同一级别添加以下和: 对于上面的示例数据,在这种情况下,结果将为0.0175(即大约1分钟)

  • 问题内容: 我想知道哪个是Javascript 对象允许的最小和最大日期。我发现最小日期大约是200000 BC,但是我没有得到任何参考。 有人知道答案吗?我只是希望它不依赖于浏览器。 最好以“纪元时间”(= 1970-01-01 00:00:00 UTC + 00的毫秒数)回答。 问题答案: 根据规范§15.9.1.1: Date对象包含一个数字,该数字指示毫秒内的特定时间点。这样的数字称为时间

  • 问题内容: 我有一个数据框,看起来像: 我希望按年份分组,然后总结sum_col。此外,我需要查找一周的最早日期和最新日期。第一部分很简单: 我试图用这个来找到最小/最大日期,但是没有成功: 如何找到最早/最新出现的日期? 问题答案: 您需要组合适用于同一列的函数,如下所示:

  • 我有一个熊猫DataFrame看起来像这样: 我的目标是能够为每个项目计算每个日期之间的价值差异。例如,我想找到A项: 12(32-20,因为最大年份是2012年,最小年份是2010年)和B项:20 (40 - 20,因为最大年份是2019年,最小年份是2016年)。 我使用以下代码获取每个项目的年最大值和年最小值: 然后,我找到每个项目的年份最小值和年份最大值。然而,我坚持做我想要的。

  • 初始数据: 使用此查询: 我得到: 但我需要分组“quotite”时,下一行是相同的,并显示第一行的开始日期和最后一行的日期。 预期结果: gordon提供的解决方案: 选择agenhi,tacthi,min(dtfihi)作为start_date,lead(max(dtfihi))over(按agenhi分区,seqnum-seqnum_2按max(dtfihi)排序)作为end_date,fr

  • 问题内容: 我想从 handleClick 函数中给定的日期列表中获得最大日期。如何使用 moment.js 从日期列表中找到最大日期? 我有以下代码: 问题答案: 您可以使用moment.max函数: