ComenzarEmpieza gratis

Sesión doble de palomitas

Los métodos de dplyr que viste en los dos capítulos anteriores usan la interfaz SQL de Spark. Es decir, convierten tu código de R en código SQL antes de pasarlo a Spark. Esta es una excelente solución para la manipulación básica de datos, pero aparecen límites cuando quieres hacer procesamiento más complejo. Por ejemplo, puedes calcular la media de una columna, pero no la mediana. Aquí tienes el ejemplo del ejercicio "Resumen de columnas" que completaste en el Capítulo 1.

track_metadata_tbl %>%
  summarize(mean_duration = mean(duration)) #OK
track_metadata_tbl %>%
  summarize(median_duration = median(duration))

sparklyr también tiene dos interfaces "nativas" que se tratarán en los próximos dos capítulos. Nativas significa que llaman a código Java o Scala para acceder directamente a las bibliotecas de Spark, sin conversión a SQL. sparklyr es compatible con la API (Application Programming Interface) de DataFrame de Spark, con funciones que tienen el prefijo sdf_. También permite acceder a la biblioteca de Machine Learning de Spark, MLlib, con funciones de "transformación de características" que empiezan por ft_, y funciones de "machine learning" que empiezan por ml_.

Una diferencia filosófica importante entre trabajar con R y trabajar con Spark es que Spark es mucho más estricto con los tipos de variables que R. La mayoría de las funciones nativas quieren entradas DoubleType y devuelven salidas DoubleType. DoubleType es el equivalente en Spark del tipo de vector numeric de R. sparklyr se encarga de convertir numeric a DoubleType, pero te corresponde a ti convertir los datos logical o integer a numeric y viceversa.

¿Cuál de estas afirmaciones es verdadera?

  1. Los métodos de dplyr de sparklyr convierten el código en Scala antes de ejecutarlo en Spark.
  2. Convertir código de R en código SQL limita el número de cálculos admitidos.
  3. La mayoría de las funciones de modelado de Spark MLlib requieren entradas DoubleType y devuelven salidas DoubleType.
  4. La mayoría de las funciones de modelado de Spark MLlib requieren entradas IntegerType y devuelven salidas BooleanType.

Este ejercicio forma parte del curso

Introducción a Spark con sparklyr en R

Ver curso

Ejercicio interactivo práctico

Pon en práctica la teoría con uno de nuestros ejercicios interactivos

Empezar ejercicio