【发布时间】:2018-10-20 02:44:09
【问题描述】:
我在使用 sparklyr R 包中的 ft_.. 函数时遇到了一些问题。 ft_bucketizer 有效,但 ft_normalizer 或 ft_min_max_scaler 无效。这是一个例子:
library(sparklyr)
library(dplyr)
library(nycflights13)
sc <- spark_connect(master = "local", version = "2.1.0")
x = flights %>% select(dep_delay)
x_tbl <- sdf_copy_to(sc, x)
# works fine
ft_binarizer(x=x_tbl, input.col = "dep_delay", output.col = "delayed", threshold = 0)
# error
ft_normalizer(x= x_tbl, input.col = "dep_delay", output.col = "delayed_norm")
# error
ft_min_max_scaler(x= x_tbl,input.col = "dep_delay",output.col = "delayed_min_max")
归一化器返回:
错误:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 9.0 中的任务 0 失败 1 次,最近一次失败:阶段 9.0 中丢失任务 0.0(TID 9,本地主机,执行程序驱动程序):org .apache.spark.SparkException: 执行用户定义函数失败($anonfun$createTransformFunc$1: (double) => vector)"
min_max_scaler 返回:
“错误:java.lang.IllegalArgumentException:要求失败:列 dep_delay 必须是 org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 类型,但实际上是 DoubleType。”
我认为是数据类型的问题,但不知道如何解决。有人知道该怎么做吗?
非常感谢!
【问题讨论】:
标签: r apache-spark apache-spark-mllib sparklyr