MAPR / Spark上的RStudio / Sparklyr - 替换为。在字符串中

时间:2017-02-10 08:49:49

标签: r apache-spark sparklyr

我有一个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

有人有解决方案将值转换为数字吗?

提前致谢,

学家

1 个答案:

答案 0 :(得分:1)

regexp_replace是您需要的功能:

tbl_bun %>% mutate(value=as.numeric(regexp_replace(value, ",", "\\.")))

如有疑问,请参阅Hive Language Manual UDF。几乎每个函数都有本机Spark实现或暴露为Hive UDF。