В целом, когда вы работаете с данными, подкрепленными базой данных или системой, подобной базой данных, количество строк не может быть определено без полной или частичной оценки запроса и без оплаты такой операции.
В случае Spark это может означать получение данных из удаленного хранилища, анализ и агрегирование.
Из-за этого nrow
(аналогично некоторым другим операциям, разработанным с учетом данных в памяти) в dplyr
/ dbplyr
всегда возвращает NA
.
ВместоВы можете использовать dplyr::summarise
с n
df <- copy_to(sc, iris)
df %>% summarise(n=n())
# Source: spark<?> [?? x 1]
n
<dbl>
1 150
dplyr::count
df %>% count()
# Source: spark<?> [?? x 1]
n
<dbl>
1 150
или sparklyr::sdf_nrow
:
df %>% sparklyr::sdf_nrow()
[1] 150
где последний вариант, вероятно, то, что вы ищете.