火花R。将 UTC 转换为本地时间以进行所有观察、多个时区
SparkR. Convert UTC to local time for all observations, multiple timezones
我是 SparkR 的新手,边学边学,使用的是 2.2.0 版 - SNAPSHOT。我有一个带有一列 UTC 时间戳和一列时区的 SparkDataFrame。例如:
mydates<- c("2012-12-22 14:23:05", "2015-01-19 16:37:42", "2017-03-02 08:22:55")
mytimeZones<- c("America/Chicago", "America/New_York", "Pacific/Galapagos")
dfr<- data.frame(date=mydates, timezone=mytimeZones)
dfs<- SparkR::createDataFrame(dfr)
我想做的是为我的数据集中的每个观测值创建一个本地时间列。我看到 from_utc_timestamp()
函数接受一列时间戳和一个表示所需时区转换的字符串。我的问题是我有两个列。鉴于此,我想知道工作流程需要是什么样的,如果有更多 SparkR 经验的人可能愿意深入了解我如何解决这个问题?目前,我尝试过这样的事情:
dftest<- withColumn(dfs, "LocalTime",
SparkR:::foreach(dfs, function(x){from_utc_timestamp(y=x$date, x=x$timezone)})
)
但是没有成功。我希望有人已经解决了 SparkR 中的这个问题并且可以帮助我。谢谢你的时间。
亲切的问候,
内特
您可以使用 selectExpr
:
selectExpr(dfs, "*", "from_utc_timestamp(date, timezone) AS LocalTime")
或expr
:
withColumn(dfs, "LocalTime", expr("from_utc_timestamp(date, timezone)"))
在更简单的情况下,时区是一个常量字符串,直接调用 from_utc_timestamp
即可:
withColumn(dfs, "LocalTime",
from_utc_timestamp(column("date"), "America/New_York")
不幸的是,没有 from_utc_timestamp
签名 (Column, Column) => Column
,因此是 SQL-ish 解决方案。
我是 SparkR 的新手,边学边学,使用的是 2.2.0 版 - SNAPSHOT。我有一个带有一列 UTC 时间戳和一列时区的 SparkDataFrame。例如:
mydates<- c("2012-12-22 14:23:05", "2015-01-19 16:37:42", "2017-03-02 08:22:55")
mytimeZones<- c("America/Chicago", "America/New_York", "Pacific/Galapagos")
dfr<- data.frame(date=mydates, timezone=mytimeZones)
dfs<- SparkR::createDataFrame(dfr)
我想做的是为我的数据集中的每个观测值创建一个本地时间列。我看到 from_utc_timestamp()
函数接受一列时间戳和一个表示所需时区转换的字符串。我的问题是我有两个列。鉴于此,我想知道工作流程需要是什么样的,如果有更多 SparkR 经验的人可能愿意深入了解我如何解决这个问题?目前,我尝试过这样的事情:
dftest<- withColumn(dfs, "LocalTime",
SparkR:::foreach(dfs, function(x){from_utc_timestamp(y=x$date, x=x$timezone)})
)
但是没有成功。我希望有人已经解决了 SparkR 中的这个问题并且可以帮助我。谢谢你的时间。 亲切的问候, 内特
您可以使用 selectExpr
:
selectExpr(dfs, "*", "from_utc_timestamp(date, timezone) AS LocalTime")
或expr
:
withColumn(dfs, "LocalTime", expr("from_utc_timestamp(date, timezone)"))
在更简单的情况下,时区是一个常量字符串,直接调用 from_utc_timestamp
即可:
withColumn(dfs, "LocalTime",
from_utc_timestamp(column("date"), "America/New_York")
不幸的是,没有 from_utc_timestamp
签名 (Column, Column) => Column
,因此是 SQL-ish 解决方案。