Manipular datas no ambiente Spark (sparklyr)

Olá. Tento manipular datas no ambiente Spark (uso do pacote sparklyr).

Após importar o objeto de classe tbl_spark, não consigo converter uma variável (x) character em date. O que tentei:

library(sparklyr)
library(dplyr)
library(lubridate)


my_con <- spark_connect(master = "local", version = "3.0.0")

df <- structure(list(x = c("19991123", NA, "19980101")), class = "data.frame", row.names = c(NA, -3L))

df_1 <- sdf_copy_to(sc = my_con, x = df)

class(df_1)
#[1] "tbl_spark" "tbl_sql"   "tbl_lazy"  "tbl"  

df_1 %>% 
  mutate(.data = ., my_date = as_date(x))

O que ocorre:

  x        my_date   
  <chr>    <date>    
1 19991123 NA        
2 NA       NA        
3 19980101 NA            

Todas as colunas de my_date apresentam o valor 0. Tentei usar as funções as.Date e ymd, mas sem sucesso.

Assim, como manipular datas no ambiente Spark?

Consegui encontrar a solução. Pode-se usar uma função do Spark diretamente (to_date):

df_1 %>% 
  mutate(.data = ., my_date = to_date(x, "yyyyMMdd"))

É uma solução simples, mas como nunca usei o Spark, demorei para encontrar. A quem interessar, neste site existem mais funções para manipulação de dados no Spark.

2 curtidas