我目前正在通过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;有没有已知的修复方法?
答案 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
(或任何其他功能),然后使用出现的函数名称检查弹出窗口。在右侧,如果您没有使用::
明确命名包,则可以看到它将被使用的包。