Я работаю с R на (Azure) Databricks и хотел включить Apache Arrow для ввода-вывода. Однако, используя приведенный ниже пример кода, я получаю странную ошибку, которую не могу отследить.
Ошибка возникает в кластерах, использующих среду выполнения Databricks ML7.0 (Spark 3.0.0) и ML7.1 (Spark 3.0.0).
library(arrow)
library(dplyr)
library(SparkR)
arrow::arrow_available()
#TRUE
# initialize Spark session using Arrow
SparkR::sparkR.session(sparkConfig = list(spark.sql.execution.arrow.sparkr.enabled = "true"))
# create Spark DataFrame
df <- mtcars
spark_df <- cache(createDataFrame(df))
# write spark_df as parquet
sink_path <- "/dbfs/FileStore/testData"
file_path <- "dbfs:/FileStore/testData/arrow_testFile"
dir.create(sink_path , recursive=T, showWarnings=F)
SparkR::write.parquet(spark_df, file_path, mode = "overwrite")
# read parquet file as Spark DataFrame and cache
file_path %>%
SparkR::read.parquet() %>%
SparkR::cache() -> sdf_new
# collect sdf_new
sdf_new %>%
SparkR::collect() -> rdf_new
Я получаю следующее сообщение об ошибке:
Error : 'as_tibble' is not an exported object from 'namespace:arrow'
Я знаю, что произошли некоторые изменения относительно as_tibble, но мне непонятно, как я могу пропустить эту ошибку и заставить Стрелку летать.