Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
在Spark中工作时,``stringr::str_detect``的替代方法_R_Apache Spark_Stringr_Sparklyr - Fatal编程技术网

在Spark中工作时,``stringr::str_detect``的替代方法

在Spark中工作时,``stringr::str_detect``的替代方法,r,apache-spark,stringr,sparklyr,R,Apache Spark,Stringr,Sparklyr,我在RStudio的本地设备上工作了几年,最近开始使用Spark(3.0.1版)。我试图在Spark中运行stringr::str_detect()时遇到了意外问题。显然,str\u detect()在SQL中没有等效项。我正在寻找另一种选择,最好是在R 下面是一个在Spark中运行str_detect()local时的预期结果示例 # Load packages library(dplyr) library(stringr) library(sparklyr) # Example tibbl

我在RStudio的本地设备上工作了几年,最近开始使用Spark(3.0.1版)。我试图在Spark中运行
stringr::str_detect()
时遇到了意外问题。显然,
str\u detect()
在SQL中没有等效项。我正在寻找另一种选择,最好是在R

下面是一个在Spark中运行
str_detect()
local时的预期结果示例

# Load packages
library(dplyr)
library(stringr)
library(sparklyr)

# Example tibble
df <- tibble(foodtype = c("potatosalad", "potato", "salad"))
df

---
# A tibble: 3 x 1
  foodtype   
  <chr>      
1 potatosalad
2 potato     
3 salad 
---

# Expected result when using R
df %>% 
  mutate(contains_potato = str_detect(foodtype, "potato"))

---
# A tibble: 3 x 2
  foodtype    contains_potato
  <chr>       <lgl>          
1 potatosalad TRUE           
2 potato      TRUE           
3 salad       FALSE  
---
#加载包
图书馆(dplyr)
图书馆(stringr)
图书馆(年)
#示例tibble
df%
突变(包含马铃薯=str检测(食物类型,“马铃薯”))
---
#一个tibble:3x2
foodtype包含\u土豆
1波塔托沙拉是真的
真的吗
3沙拉假
---
但是,当我在Spark数据帧上运行此代码时,它返回以下错误消息:“error:str_detect()在此SQL变体中不可用”

#连接到本地Spark群集
sc
str_detect()
相当于Spark的
rlike
功能。 我不将spark与R一起使用,但类似的东西应该可以工作:

df_spark %>% mutate(contains_potato = foodtype %rlike% "potato")
dplyr
在没有dplyr等价物时接受作为R函数编写的Spark函数:

df_spark %>% mutate(contains_potato = rlike(foodtype, "potato"))


谢谢@Blackishop!我对你的答案进行了一些编辑,以包含“类似R”的书面代码(没有双关语)。
df_spark %>% mutate(contains_potato = rlike(foodtype, "potato"))