Reduzindo os dados por amostragem
Quando você trabalha com um conjunto de dados grande, geralmente não precisa usar tudo o tempo todo. Principalmente no início do projeto, enquanto você está experimentando o que quer fazer, muitas vezes é possível iterar mais rápido trabalhando com um subconjunto menor dos dados. sdf_sample() oferece uma forma prática de fazer isso. Ela recebe um tibble e a fração de linhas a retornar. Neste caso, você quer amostrar sem reposição. Para obter uma amostra aleatória de um décimo do seu conjunto de dados, você usaria o código a seguir.
a_tibble %>%
sdf_sample(fraction = 0.1, replacement = FALSE)
Como os resultados da amostragem são aleatórios e você provavelmente vai querer reutilizar o conjunto de dados reduzido, é comum usar compute() para armazenar os resultados como outro data frame do Spark.
a_tibble %>%
sdf_sample(<some args>) %>%
compute("sample_dataset")
Para tornar os resultados reprodutíveis, você também pode definir uma semente de números aleatórios por meio do argumento seed. Ao fazer isso, você obtém o mesmo conjunto de dados aleatório sempre que executar seu código. Não importa qual número você use como semente; basta escolher seu inteiro positivo favorito.
Este exercício faz parte do curso
Introdução ao Spark com sparklyr em R
Instruções do exercício
Uma conexão Spark foi criada para você como spark_conn. Um tibble ligado aos metadados das faixas armazenados no Spark foi pré-definido como track_metadata_tbl.
- Use
sdf_sample()para amostrar 1% dos metadados das faixas sem reposição.- Passe
20000229para o argumentoseedpara definir uma semente aleatória.
- Passe
- Compute o resultado e armazene-o em uma tabela chamada
"sample_track_metadata".
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# track_metadata_tbl has been pre-defined
track_metadata_tbl
track_metadata_tbl %>%
# Sample the data without replacement
___ %>%
# Compute the result
___