在火花数据帧上使用dplyr输入滤波器功能的不匹配错误

时间:2017-05-02 13:32:13

标签: apache-spark dplyr sparklyr

我目前正在通过rhel集群开发Rstudio。 我在一个纱线客户端使用spark 2.0.2&安装了以下版本的sparklyr& dplyr

sparklyr_0.5.4; dplyr_0.5.0

对以下行进行简单测试会导致错误

data = copy_to(sc, iris)
filter(data , Sepal_Length >5)

Error in filter(data, Sepal_Length > 5) : 
(list) object cannot be coerced to type 'double'

我查看过& amp;一切都很好

head(data)
Source:   query [6 x 5]
Database: spark connection master=yarn-client app=sparklyr local=FALSE

Sepal_Length Sepal_Width Petal_Length Petal_Width Species
     <dbl>       <dbl>        <dbl>       <dbl>   <chr>
1    5.1         3.5          1.4         0.2    setosa
2    4.9         3.0          1.4         0.2    setosa
3    4.7         3.2          1.3         0.2    setosa
4    4.6         3.1          1.5         0.2    setosa
5    5.0         3.6          1.4         0.2    setosa
6    5.4         3.9          1.7         0.4    setosa

这是一个已知的错误&amp;有没有已知的修复方法?

1 个答案:

答案 0 :(得分:1)

这不是一个错误。您必须指定要使用filter包中的dplyr函数。您可能正在使用filter包中的stats函数。这就是你得到那个错误的原因。您可以使用以下命令指定正确的版本:dplyr::filter

res <- dplyr::filter(data, Sepal_Length > 5) %>% dplyr::collect()
head(res)
# A tibble: 6 x 5
  Sepal_Length Sepal_Width Petal_Length Petal_Width Species
         <dbl>       <dbl>        <dbl>       <dbl>   <chr>
1          5.1         3.5          1.4         0.2  setosa
2          5.4         3.9          1.7         0.4  setosa
3          5.4         3.7          1.5         0.2  setosa
4          5.8         4.0          1.2         0.2  setosa
5          5.7         4.4          1.5         0.4  setosa
6          5.4         3.9          1.3         0.4  setosa

可以肯定的是,在RStudio控制台中,只需键入filter(或任何其他功能),然后使用出现的函数名称检查弹出窗口。在右侧,如果您没有使用::明确命名包,则可以看到它将被使用的包。