【发布时间】:2019-06-24 15:21:06
【问题描述】:
我在 R 中有示例数据帧 df,在 sparklyr 中有 rd_3。我想在 spark dataframe 中创建 visit_category 列。我知道我们可以在 R 中使用 Cut 函数来创建相同的列,但是如何在 sparklyr 中创建相同的列?
为了可重现的目的
df<-data.frame(visit_duration=c(12,20,70,100),city=c("X","X","X","X"),visit_category=c("0-15","15-25","25-80","80-120"))
rd_3<-copy_to(sc,df)
我不能使用 ifelse 语句,因为 bin 的数量超过 50 。我在 sparklyr 中使用了 ft_bucketlizer,但它显示了如下所示的错误
rd_3 %>%
ft_bucketizer("visit_duration", "Visit_Category", splits = c(0, 15, 25, 80 , 120)) %>%
mutate(Visit_Category = factor(Visit_Category, labels = c("0-15","15-25","25-80","80-120")))
这是我得到的错误
Error: org.apache.spark.sql.catalyst.parser.ParseException:
extraneous input 'AS' expecting {')', ','}(line 1, pos 98)
== SQL ==
SELECT `new_col`, `visit_duration`, FACTOR(`Visit_Category`, ("0-15",
"15-25", "25-80", "80-120") AS "labels") AS `Visit_Category`
In addition: Warning message:
Named arguments ignored for SQL FACTOR
【问题讨论】:
标签: r apache-spark apache-spark-sql apache-spark-ml sparklyr