在pyspark中动态向时间戳添加小时数

在pyspark中动态向时间戳添加小时数,pyspark,Pyspark,现在我想在测试时间中增加班次(小时)。有人能帮我快速解决吗?你可以使用下面的方法。你们需要把移位字段转换成秒,所以我把它乘以3600 import pyspark.sql.functions as F from datetime import datetime data = [ (1, datetime(2017, 3, 12, 3, 19, 58), 'Raising',2), (2, datetime(2017, 3, 12, 3, 21, 30), 'sleeping',1),

现在我想在测试时间中增加班次(小时)。有人能帮我快速解决吗?

你可以使用下面的方法。你们需要把移位字段转换成秒,所以我把它乘以3600

import pyspark.sql.functions as F
from datetime import datetime

data = [
  (1, datetime(2017, 3, 12, 3, 19, 58), 'Raising',2),
  (2, datetime(2017, 3, 12, 3, 21, 30), 'sleeping',1),
  (3, datetime(2017, 3, 12, 3, 29, 40), 'walking',3),
  (4, datetime(2017, 3, 12, 3, 31, 23), 'talking',5),
  (5, datetime(2017, 3, 12, 4, 19, 47), 'eating',6),
  (6, datetime(2017, 3, 12, 4, 33, 51), 'working',7),
]
df.show()

| id|       testing_time|test_name|shift|
|  1|2017-03-12 03:19:58|  Raising|    2|
|  2|2017-03-12 03:21:30| sleeping|    1|
|  3|2017-03-12 03:29:40|  walking|    3|
|  4|2017-03-12 03:31:23|  talking|    5|
|  5|2017-03-12 04:19:47|   eating|    6|
|  6|2017-03-12 04:33:51|  working|    7|

你能重新措辞这个问题吗?
>>> df.withColumn("testing_time", (F.unix_timestamp("testing_time") + F.col("shift")*3600).cast('timestamp')).show()
+---+-------------------+---------+-----+
| id|       testing_time|test_name|shift|
+---+-------------------+---------+-----+
|  1|2017-03-12 05:19:58|  Raising|    2|
|  2|2017-03-12 04:21:30| sleeping|    1|
|  3|2017-03-12 06:29:40|  walking|    3|
|  4|2017-03-12 08:31:23|  talking|    5|
|  5|2017-03-12 10:19:47|   eating|    6|
|  6|2017-03-12 11:33:51|  working|    7|
+---+-------------------+---------+-----+