sparklyr:使用mutate函数创建新列

enn*_*ppi 3 r apache-spark sparklyr

如果用闪闪发光器无法解决这类问题,我会感到非常惊讶:

iris_tbl <- copy_to(sc, aDataFrame)

# date_vector is a character vector of element
# in this format: YYYY-MM-DD (year, month, day)
for (d in date_vector) {
   ...
   aDataFrame %>% mutate(newValue=gsub("-","",d)))
   ...
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error: org.apache.spark.sql.AnalysisException: Undefined function: 'GSUB'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'.; line 2 pos 86
    at org.apache.spark.sql.catalyst.catalog.SessionCatalog.failFunctionLookup(SessionCatalog.scala:787)
    at org.apache.spark.sql.hive.HiveSessionCatalog.lookupFunction0(HiveSessionCatalog.scala:200)
    at org.apache.spark.sql.hive.HiveSessionCatalog.lookupFunction(HiveSessionCatalog.scala:172)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveFunctions$$anonfun$apply$13$$anonfun$applyOrElse$6$$anonfun$applyOrElse$39.apply(Analyzer.scala:884)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveFunctions$$anonfun$apply$13$$anonfun$applyOrElse$6$$anonfun$applyOrElse$39.apply(Analyzer.scala:884)
    at org.apache.spark.sql.catalyst.analysis.package$.withPosition(package.scala:48)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveFunctions$$anonfun$apply$13$$anonfun
Run Code Online (Sandbox Code Playgroud)

但是这条线:

aDataFrame %>% mutate(newValue=toupper("hello"))
Run Code Online (Sandbox Code Playgroud)

事情有效.一些帮助?

Kon*_*rad 10

可能值得补充的是,可用的文档说明:

蜂巢功能

许多Hive的内置函数(UDF)和内置聚合函数(UDAF)都可以在dplyr的mutate和summary中进行调用.该下的语参考UDF页提供的可用功能的列表.

蜂巢

如文档中所述,使用以下方法可以实现可行的解决方案regexp_replace:

返回替换所有子串中的字符串所产生的字符串 使用实例INITIAL_STRING定义的java正则表达式语法.例如, 返回请注意,在使用预定义字符类时需要注意:使用第二个参数将匹配字母是必要的匹配空白等PATTERNREPLACEMENT.regexp_replace("foobar", "oo|ar", "")'fb.''\s's; '\\s'

sparklyr 途径

考虑到上述情况,应该可以将sparklyr管道 结合起来regexp_replace以实现与应用于gsub所需列的效果相关.删除变量中的-字符的经过测试的代码可以构建如下:sparklyrd

aDataFrame %>% 
  mutate(clnD = regexp_replace(d, "-", "")) %>%
  # ...
Run Code Online (Sandbox Code Playgroud)

哪里class(aDataFrame )回报:"tbl_spark" ....