Sparklyr с SparkR: проблемы с устранением аргументов функции

#r #sparkr #sparklyr

#r #sparkr #sparklyr

Вопрос:

Я запускаю Sparklyr с SparkR. Когда я пытаюсь вызвать schema() функцию с таблицей данных, созданной с помощью spark_read_csv() , я получаю следующую ошибку (и аналогичную ошибку в функциях select() и lapply() ):

Ошибка в (функция (классы, fdef, mtable) :

не удалось найти унаследованный метод для функции ‘schema’ для подписи ‘»tbl_spark»’

Ниже приведена информация о моей версии:

R версия 3.5.3 (2019-03-11)

Платформа: x86_64-w64-mingw32 / x64 (64-разрядная версия)

Работает под управлением: Windows Server> = 2012 x64 (сборка 9200)

… другие прикрепленные пакеты: [1]

sparklyr_1.0.9005 SparkR_2.4.1

Вот несколько примеров кода:

 library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
library(sparklyr)

...

sc <- spark_connect(master = "spark://<server>",spark_home = 
"C:/Users/paul/Downloads/spark-2.4.1-bin-hadoop2.7", app_name = "sparklyr",config=config)

...

AWIDData = spark_read_csv(sc, name = "AWIDData", path = "hdfs://<server>/AWID/dataset-headers-tst.csv")

...

SparkR::schema(AWIDData)
  

Я ожидал бы, что это создаст структуру схемы для таблицы данных tbl_spark, но в ней есть какая-то ошибка, разрешающая правильную функцию для вызова.

Ответ №1:

Путаница может быть следствием смешивания функций из двух пакетов SparkR и sparklyr . Поскольку вы создали соединение с источником данных с помощью sparklyr функции ( spark_read_csv ), вам нужно будет использовать sparklyr функцию sdf_schema вместо schema .