В RStudio могу ли я визуально просмотреть кадры данных Spark в графическом интерфейсе, как это можно сделать с обычными кадрами данных R?

#r #apache-spark #user-interface #rstudio #sparklyr

Вопрос:

Фон

Это может быть мой недостаток мастерства показывает, но так как я работаю на данные манипуляции R , используя в RStudio, я люблю нажав на таблицы данных в «средах», части графического интерфейса пользователя (для меня это в верхней правой части экрана), чтобы увидеть, как мои суставы, мутирует и т. д. меняем стол(ы), как я двигаюсь через мой рабочий процесс. Это действует для меня как проверка визуального здравомыслия; когда дело доходит до таблиц и фреймов данных, я очень визуальный мыслитель, и мне нравится видеть свои результаты в коде. В качестве примера я нажму на это:

введите описание изображения здесь

И увидеть что-то вроде этого:

введите описание изображения здесь

Проблема

В последнее время из-за очень большого набора данных (~200 млн строк) мне пришлось выполнить часть своей dplyr работы внутри sparklyr , используя локальный экземпляр Apache Spark для обработки некоторых манипуляций с данными. Это работает в основном нормально, но я теряю возможность просматривать небольшие предварительные просмотры данных, потому что объекты фрейма данных spark выглядят как списки на панели среды:

введите описание изображения здесь

Помимо нажатия, есть ли способ «просмотреть» мои фреймы данных Spark внутри RStudio во время работы с ними?

Что я пробовал

Так что вашей первой мыслью может быть «просто используйте head() » — и вы будете правы! За исключением того, что для запуска head(d1, 5) локальной искры df с 200 миллионами строк требуется … очень давно.

Может быть, я что-то упускаю?

Ответ №1:

Как правило, я считаю, что вам нужно вызвать collect() в фрейме данных Spark. Поэтому я бы сначала попробовал фрейм данных Spark, скажем, 0,001% строк (если их 200 миллионов) с sparklyr::sdf_sample помощью функции, а затем собрал бы этот образец в обычный фрейм данных для просмотра.

 samp <- analysis_test %>% sdf_sample(fraction = .00001) %>% collect()
 

Комментарии:

1. Большое спасибо, Трэвис-я думаю, это могло бы сработать просто отлично. На данный момент я нахожусь вдали от компьютера, но я запущу это, как только вернусь, и отмечу, что на мой вопрос дан ответ, если он сработает.