我有一个Spark数据帧tbl_pred,其中包含以下因素列:
**Value**
13,3
11
5,3
我喜欢转换这些'字符串'到数值。我可以使用as.numeric函数,但这不起作用,因为我的分隔符是逗号。
tbl_pred <- tbl_bun %>% mutate(value = as.numeric(value))
通常我会使用sub函数来替换a。但是这个函数对我的Spark数据帧对象不起作用。
Error: org.apache.spark.sql.AnalysisException: Undefined function: 'SUB'. This function is neither a registered temporary function nor a permanent function registered in the database 'xxx'.; line 1 pos 417
有人有解决方案将值转换为数字吗?
提前致谢,
学家
答案 0 :(得分:1)
regexp_replace
是您需要的功能:
tbl_bun %>% mutate(value=as.numeric(regexp_replace(value, ",", "\\.")))
如有疑问,请参阅Hive Language Manual UDF。几乎每个函数都有本机Spark实现或暴露为Hive UDF。