Двойной сеанс: два вопроса за раз
Методы dplyr, с которыми вы работали в предыдущих двух главах, используют SQL-интерфейс Spark. То есть они преобразуют ваш R-код в SQL-код перед передачей его в Spark. Это отличное решение для базовых операций с данными, однако при более сложной обработке возникают ограничения. Например, можно вычислить среднее значение столбца, но не медиану. Вот пример из упражнения «Суммирование столбцов» в главе 1.
track_metadata_tbl %>%
summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
summarize(median_duration = median(duration))
Помимо этого, sparklyr предоставляет два «нативных» интерфейса, которые будут рассмотрены в следующих двух главах. Нативный означает, что они вызывают код Java или Scala для прямого обращения к библиотекам Spark — без какого-либо преобразования в SQL. sparklyr поддерживает Spark DataFrame Application Programming Interface (API) с функциями, имеющими префикс sdf_. Также поддерживается доступ к библиотеке машинного обучения Spark MLlib: функции «преобразования признаков» начинаются с ft_, а функции «машинного обучения» — с ml_.
Важное принципиальное отличие работы со Spark от работы с R состоит в том, что Spark гораздо строже относится к типам переменных. Большинство нативных функций принимают на вход данные типа DoubleType и возвращают результат того же типа. DoubleType — это аналог типа numeric в R. sparklyr автоматически преобразует numeric в DoubleType, однако преобразование данных типа logical или integer в numeric и обратно — задача пользователя (то есть ваша!).
Какое из следующих утверждений верно?
- Методы
dplyrвsparklyrпреобразуют код в Scala перед запуском на Spark. - Преобразование R-кода в SQL ограничивает набор поддерживаемых вычислений.
- Большинство функций моделирования Spark MLlib принимают входные данные типа
DoubleTypeи возвращают результат типаDoubleType. - Большинство функций моделирования Spark MLlib принимают входные данные типа
IntegerTypeи возвращают результат типаBooleanType.
Это упражнение является частью курса
Введение в Spark с sparklyr на R
Практическое интерактивное упражнение
Превратите теорию в практику с помощью одного из наших интерактивных упражнений
Начать упражнение