Проблема измерения Sparklyr с spark_read_csv: нет результата - PullRequest
0 голосов
/ 08 февраля 2019

Когда я открываю набор данных (.csv) в среде Spark с помощью spark_read_csv и запрашиваю размеры связанного объекта tibble, количество строк определяется не числом NA.Чего не хватает при открытии файла csv?

Вот что я получаю:

data = spark_read_csv(
  spark_conn, name = "Advert", path = "/path/to/file", 
  header = TRUE, delimiter = ","
)

dim(data)
[1] NA  5

1 Ответ

0 голосов
/ 09 февраля 2019

В целом, когда вы работаете с данными, подкрепленными базой данных или системой, подобной базой данных, количество строк не может быть определено без полной или частичной оценки запроса и без оплаты такой операции.

В случае 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

где последний вариант, вероятно, то, что вы ищете.

...