Spark Dataframe,获取两个日期之间的持续时间(以小时为单位),并将其划分为每一天

时间:2019-03-11 21:15:34

标签: apache-spark dataframe timestamp

我有一个相对较大的数据集,其中记录了作业提交到队列的记录。这些记录的一部分(一部分)包含作业的运行时的开始和结束,以及它们消耗了多少资源(在此处为nnodes)。

我能做的就是为每项工作的每一天创建一个新行。我想做的是还要获得这项工作每天使用这些资源的多少小时。

+-------+-------------------+-------------------+------+----------+
| job_id|              start|                end|nnodes| job's day|
+-------+-------------------+-------------------+------+----------+
|2747673|2015-01-04 23:44:03|2015-01-05 00:13:18|  1676|2015-01-04|
|2747673|2015-01-04 23:44:03|2015-01-05 00:13:18|  1676|2015-01-05|
+-------+-------------------+-------------------+------+----------+

这似乎应该是一个简单的任务,但是我需要做的是获取每个工作的天数。如果答案是一个简单的减少,但对于更大的数字,则不是那么简单。我想知道是否有一个典型的解决方案。可以假设,并非所有月份都相等。

p.s。我想强调,每条记录我需要几个小时或几分钟。所以第一行应该是:

+-------+-------------------+-------------------+------+----------+--------+
| job_id|              start|                end|nnodes| job's day| minutes|
+-------+-------------------+-------------------+------+----------+--------+
|2747673|2015-01-04 23:44:03|2015-01-05 00:13:18|  1676|2015-01-04|      46|
|2747673|2015-01-04 23:44:03|2015-01-05 00:13:18|  1676|2015-01-05|      13|
+-------+-------------------+-------------------+------+----------+--------+

以此类推。

0 个答案:

没有答案