#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
.