ComeçarComece de graça

Sessão dupla de cinema

Os métodos dplyr que você viu nos dois capítulos anteriores usam a interface SQL do Spark. Ou seja, eles convertem seu código R em código SQL antes de passá-lo ao Spark. Essa é uma ótima solução para manipulação básica de dados, mas encontra limitações quando você quer fazer processamentos mais complexos. Por exemplo, você consegue calcular a média de uma coluna, mas não a mediana. Aqui está o exemplo do exercício “Resumindo colunas” que você concluiu no Capítulo 1.

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

sparklyr também tem duas interfaces “nativas” que serão discutidas nos próximos dois capítulos. Nativa significa que elas chamam código Java ou Scala para acessar as bibliotecas do Spark diretamente, sem qualquer conversão para SQL. O sparklyr dá suporte à API (Application Programming Interface) de DataFrame do Spark, com funções que têm o prefixo sdf_. Também oferece acesso à biblioteca de Machine Learning do Spark, a MLlib, com funções de “transformação de atributos” que começam com ft_ e funções de “machine learning” que começam com ml_.

Uma diferença filosófica importante entre trabalhar com R e trabalhar com Spark é que o Spark é muito mais rigoroso com tipos de variáveis do que o R. A maioria das funções nativas quer entradas DoubleType e retorna saídas DoubleType. DoubleType é o equivalente do Spark ao tipo de vetor numeric do R. O sparklyr cuida de converter numeric para DoubleType, mas cabe a você converter dados logical ou integer em dados numeric e depois convertê-los de volta.

Qual dessas afirmações é verdadeira?

  1. Os métodos dplyr do sparklyr convertem o código em Scala antes de executá-lo no Spark.
  2. Converter código R em código SQL limita o número de computações suportadas.
  3. A maioria das funções de modelagem do Spark MLlib exige entradas DoubleType e retorna saídas DoubleType.
  4. A maioria das funções de modelagem do Spark MLlib exige entradas IntegerType e retorna saídas BooleanType.

Este exercício faz parte do curso

Introdução ao Spark com sparklyr em R

Ver curso

Exercício interativo prático

Transforme a teoria em ação com um de nossos exercícios interativos

Começar o exercício