Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sparkyr:使用mutate函数创建新列_R_Apache Spark_Sparklyr - Fatal编程技术网

Sparkyr:使用mutate函数创建新列

Sparkyr:使用mutate函数创建新列,r,apache-spark,sparklyr,R,Apache Spark,Sparklyr,如果使用Sparkyr无法解决此类问题,我感到非常惊讶: 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)))

如果使用Sparkyr无法解决此类问题,我感到非常惊讶:

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)))
   ...
}
但有了这句话:

aDataFrame %>% mutate(newValue=toupper("hello"))

事情是这样的。有什么帮助吗?

我强烈建议您在继续之前阅读
Sparkyr
文档。特别是,您需要阅读关于如何将R转换为SQL()的部分。简而言之,R函数的一个非常有限的子集可用于
sparklyr
数据帧,而
gsub
不是这些函数中的一个(但
toupper
是)。如果您确实需要
gsub
您必须
将数据收集到本地数据帧中,然后
gsub
它(您仍然可以使用
mutate
),然后
复制到
返回spark。

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

蜂巢功能 Hive的许多内置函数(UDF)和内置聚合函数(UDAF)都可以在dplyr的mutate and Summary中调用。该页面提供可用功能的列表

蜂箱 如文件中所述,可行的解决方案应通过使用:

返回替换中所有子字符串所产生的字符串 与定义的java正则表达式语法匹配的
初始\u字符串
模式中
具有
替换实例。
例如,
regexp\u replace(“foobar”、“oo | ar”和“”)
返回
“fb”。
注意 使用预定义字符类时必须小心:使用
'\s'
作为 第二个参数将匹配字母
s;'\\s'
是必要的 匹配空格等

方法
考虑到上述情况,应该可以将
sparkyr
管道与
regexp\u replace
以实现对所需列应用
gsub
的同源效果。删除变量
中的
-
字符的测试代码可按如下方式生成:

aDataFrame %>% 
  mutate(clnD = regexp_replace(d, "-", "")) %>%
  # ...

其中
class(aDataFrame)
返回:
“tbl\u spark”…

regexp\u是否替换sparkrlyr函数?我只能在SparkR中找到它。@dalloliogm它是一个配置单元函数,因为提供的解决方案使用了配置单元的函数。
aDataFrame %>% 
  mutate(clnD = regexp_replace(d, "-", "")) %>%
  # ...