【发布时间】:2020-05-07 06:39:32
【问题描述】:
上下文:我使用从 pyspark.sql.functions 导入的 date_trunc 函数将时间戳截断为分钟。
df_truncated = df.withColumn('dt', date_trunc('minute', df["timestamp"]))
df_truncated.show(truncate=False)
输出如下
+------------------------+-------------------+
|timestamp |dt |
+------------------------+-------------------+
|2020-01-02T00:30:47.178Z|2020-01-02 02:30:00|
|2020-01-02T00:30:47.160Z|2020-01-02 02:30:00|
|2020-01-02T00:30:46.327Z|2020-01-02 02:30:00|
|2020-01-02T00:30:45.003Z|2020-01-02 02:30:00|
|2020-01-02T00:30:44.054Z|2020-01-02 02:30:00|
+------------------------+-------------------+
问题:问题是它“增加”了两个小时到原始 timstamp - 从 utc 转换为本地时间。
问题:我怎样才能避免这种情况?我是否需要手动截断时间戳或 date_trunc 函数的某些参数未记录?或者我是否需要访问 spark 全局设置,如果需要,那么如何或哪些设置?
【问题讨论】:
标签: date pyspark timestamp timezone truncation