- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在为在java虚拟机上执行的apache Spark编写代码。它具有 Spark SQL,允许用户在对象集合上编写 SQL 表达式。
我尝试查询的 SQL 命令对于 Spark 的引擎来说太复杂,因此我尝试使用代码而不是 SQL 来寻找替代方案。
我正在编写一个脚本来检查我的数据流是否每 12 小时传输一次
示例数据如下所示:
sourceId streamedAt
----------------------------------
station_1 2019-06-02 09:01:10
station_1 2019-06-02 09:01:13
station_1 2019-06-02 21:05:10
station_1 2019-06-02 21:08:15
station_2 2019-06-02 09:30:10
station_2 2019-06-02 09:31:10
station_2 2019-06-02 21:40:11
station_2 2019-06-02 21:40:12
您可以将其视为 StreamerEvent 对象的数组:
class StreamerEvent {
String sourceId;
Date streamedAt;
}
我需要搜索集合,并搜索将持续几分钟的每个流媒体和流(这种情况每 12 小时 +- 某个时间发生一次),仅获取该特定流媒体间隔中的第一个。所以我的数组现在看起来像这样:
sourceId streamedAt
----------------------------------
station_1 2019-06-02 09:01:10
station_1 2019-06-02 21:05:10
station_2 2019-06-02 09:30:10
station_2 2019-06-02 21:40:11
所以我的 SQL 查询是:
spark.sql("SELECT * FROM (select sourceId, streamedAt, lag(streamedAt, 1) over(partition by sourceId order by streamedAt) as prev_streamedAt from streaming_data) streaming_data where prev_streamedAt is null or prev_streamedAt < streamedAt - interval 11 hour")
但它不适用于流数据,仅适用于静态数据。
有人可以给出一些关于如何使用 java/scala 集合来解决这个问题的提示吗?
最佳答案
好的。所以我找到了解决这个问题的方法。
我只需要对时间戳列的时间部分进行四舍五入,如下所示:
2019-06-02 09:01:10 => 2019-06-02 09:00:00
为此,我在 scala 中使用了 org.joda.time 库。
之后,我只是用两列选择不同的。
同样在 Spark 中,更好的解决方案是在给定的数据帧上使用“dropduplicates()”函数。
关于java - 如何通过时间戳属性过滤对象数组(通过 - 命令分区的 SQL 滞后的替代代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706161/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!