У меня работает sparklyr 1.0.0 и SparkR 2.4.1. Я пытаюсь выполнить пример ft_min_max_scaler () из документации по sparklyr, но он не работает должным образом. Функции работают без ошибок, но на выходе, кажется, нет изменений на входе.
Я начал пробовать этот пример кода после того, как мой другой код, использующий эти функции, не работал должным образом.
Вот код:
sc <- spark_connect(master = "spark://<address>:7077",spark_home = "C:/Users/paul/Downloads/spark-2.4.1-bin-hadoop2.7", app_name = "sparklyr",config=config)
data(iris)
iris_tbl <- sdf_copy_to(sc, iris, name = "iris_tbl", overwrite = TRUE)
iris_tbl
features <- c("Sepal_Length", "Sepal_Width", "Petal_Length", "Petal_Width")
iris_tbl %>%
ft_vector_assembler(input_col = features,
output_col = "features_temp",uid="assembler") %>%
ft_min_max_scaler(input_col = "features_temp",
output_col = "features",uid="scaler")
Я ожидаю, что 4 перечисленных атрибута будут масштабированы до [0,1], но они не меняются и все больше 1.
Обновление:
Следующий код исправил проблему, но мне все еще нужно выяснить, как скопировать столбец «features» обратно в фрейм данных:
iris_tbl<-iris_tbl %>%
ft_vector_assembler(input_col = features,
output_col = "features_temp",uid="assembler") %>%
ft_min_max_scaler(input_col = "features_temp",
output_col = "features",uid="scaler") %<% collect()
iris_tbl$features