r - sparklyr date_format 仅适用于某些格式
问题描述
我正在尝试使用 Hive UDFdate_format()
来提取星期几,但它只返回NA
。让我们看一个例子
sc <- sparklyr::spark_connect(master = "local")
df <- dplyr::copy_to(
sc,
data.frame(date = as.POSIXct("2020-01-01")),
"df"
)
df
# # Source: spark<df> [?? x 1]
# date
# <dttm>
# 1 2019-12-31 23:00:00
# Extracting the year works fine...
dplyr::mutate_at(
.tbl = df,
.vars = "date",
.funs = ~date_format(., "yyyy")
)
# # Source: spark<?> [?? x 1]
# date
# <chr>
# 1 2020
# But extracting the day of the week does not...
dplyr::mutate_at(
.tbl = df,
.vars = "date",
.funs = ~date_format(., "E")
)
# # Source: spark<?> [?? x 1]
# date
# <chr>
# 1 NA
任何帮助,将不胜感激。一些系统信息:
- Mac OS 10.15.7
- 火花 3.0.1
- 火花1.5.1
解决方案
我的尝试是使用mutate
。如果要原地更改,请替换DoW
为date
.
library(tidyverse)
library(sparklyr)
sc <- spark_connect(master = "local")
df <- dplyr::copy_to(sc, data.frame(date = as.POSIXct("2020-01-01")), "df")
df %>% mutate(DoW=date_format(date, "E"))
# Source: spark<?> [?? x 2]
date DoW
<dttm> <chr>
1 2019-12-31 23:00:00 Wed
推荐阅读
- python - pyqt 和 VTK:将滑块连接到 vtk 对象的问题
- c# - Unity3d transform.position 没有返回正确的值
- node.js - 通过数组聚合对文档进行评分
- python - 如何在 pandas 数据框中转换文本(删除标点符号,将文本拆分为每个条目一个单词)
- angular - 具有从右到左方向的角材料表
- javascript - 将变量动态传递给 Javascript 函数的多个实例
- angularjs - AngularJS 在数据之前加载指令
- django-templates - Django模板动态静态
- javascript - 用字符串替换for循环中的整数
- c++ - 通过 Visual Studio 的 DLL 边界传递 std::string 的问题