假设使用诸如current_timestamp()
,hour()
,...之类的函数时,我有一个时间戳是从spark内部的minute()
UDF获得的时间戳。如何指定时区?
我相信https://issues.apache.org/jira/browse/SPARK-18350引入了对此的支持。但是无法使其正常工作。类似于页面上的最后一条评论:
session.read.schema(mySchema) .json(path) .withColumn("year", year($"_time")) .withColumn("month", month($"_time")) .withColumn("day", dayofmonth($"_time")) .withColumn("hour", hour($"_time", $"_tz"))
看看小时函数的定义,它使用一个小时 可以使用可选的timeZoneId构造的表达式。一世 一直试图创建一个小时表达式,但这是 Spark内部构造-API禁止直接使用它。一世 猜想提供一个函数hour(t:Column,tz:Column)以及 现有的小时数(t:Column)不能令人满意。
我坚持尝试将特定时区传递给默认的内置时间UDF。