0

我目前正在通过 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'

我检查了阅读,一切看起来都很好

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

这是一个已知的错误吗?是否有已知的修复方法?

4

1 回答 1

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(或任何其他函数)并检查带有出现的函数名称的弹出窗口。在右侧,如果您没有明确地使用::.

于 2017-05-02T16:04:49.117 回答