Skip to content

Commit ba0287e

Browse files
committed
diverses corrections
1 parent 35860a7 commit ba0287e

File tree

10 files changed

+28
-34
lines changed

10 files changed

+28
-34
lines changed

R/benchmark_parquet_functions.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ import_time_parquet <- function(path, col_names = NULL) {
4848

4949

5050
import_time_parquet_partioned <- function(
51-
path = "./data/RPindividus.parquet",
51+
path = "data/RPindividus.parquet",
5252
col_names = NULL
5353
){
5454

R/checkpoints/application4/main_ls3.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ columns_subset <- c(
1818
)
1919

2020
df <- open_dataset(
21-
"./data/RPindividus",
21+
"data/RPindividus",
2222
hive_style = TRUE
2323
) %>%
2424
filter(REGION == 24) %>%
@@ -98,7 +98,7 @@ departements <- aws.s3::s3read_using(
9898
# PART DES SENIORS FRANCE ENTIERE =====================================
9999

100100
part_seniors <- open_dataset(
101-
"./data/RPindividus",
101+
"data/RPindividus",
102102
hive_style = TRUE
103103
) %>%
104104
mutate(plus_60 = AGED > 60) %>%
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ columns_subset <- c(
1818
)
1919

2020
df <- open_dataset(
21-
"./data/RPindividus",
21+
"data/RPindividus",
2222
hive_style = TRUE
2323
) %>%
2424
filter(REGION == 24) %>%
@@ -95,7 +95,7 @@ departements <- sf::st_read(
9595
# PART DES SENIORS FRANCE ENTIERE =====================================
9696

9797
part_seniors <- open_dataset(
98-
"./data/RPindividus",
98+
"data/RPindividus",
9999
hive_style = TRUE
100100
) %>%
101101
mutate(plus_60 = AGED > 60) %>%

R/checkpoints/application5_part2/main_sspcloud.R

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ path_within_bucket <- "/bonnes-pratiques/data"
1010

1111

1212
source("R/functions.R", encoding = "UTF-8")
13-
source("./R/functions_import.R", encoding = "UTF-8")
14-
source("./R/functions_stats_desc.R", encoding = "UTF-8")
15-
source("./R/functions_models.R", encoding = "UTF-8")
13+
source("R/functions_import.R", encoding = "UTF-8")
14+
source("R/functions_stats_desc.R", encoding = "UTF-8")
15+
source("R/functions_models.R", encoding = "UTF-8")
1616

1717

1818
# ENVIRONNEMENT DE STOCKAGE -------------------

slides/_r_advanced.qmd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -529,14 +529,14 @@ On aurait pu également utiliser un **orchestrateur** dédié pour effectuer cet
529529
## Application 5: partie 3 {.smaller}
530530

531531

532-
:::{.callout-tip collapse="true" icon=false .noincremental}
532+
:::{.callout-tip collapse="true" icon=false .nonincremental}
533533
## Partie 3 : ajout de contrôles de qualité des données
534534

535535
Un critère de qualité majeur d'une chaîne de production est sa robustesse. Naturellement, les données en entrée de la chaîne peuvent évoluer dans le temps. Afin de gérer au mieux les risques posés par de telles évolutions, on va ajouter des contrôles sur la qualité des données, en entrée et en sortie de la chaîne.
536536

537537
:::
538538

539-
:::{.callout-tip collapse="true" icon=false .noincremental}
539+
:::{.callout-tip collapse="true" icon=false .nonincremental}
540540
## Partie 4 : tests unitaires et versionnage de la chaîne
541541

542542
Notre chaîne tourne à présent de manière robuste. Pour autant, ce n'est pas un objet fixe : on peut vouloir lui apporter des corrections ou des améliorations fonctionnelles. Et ces modifications peuvent, à leur tour, provoquer des nouvelles erreurs. Pour gérer ces risques, on va :
@@ -545,14 +545,14 @@ Notre chaîne tourne à présent de manière robuste. Pour autant, ce n'est pas
545545

546546
:::
547547

548-
:::{.callout-tip collapse="true" icon=false .noincremental}
548+
:::{.callout-tip collapse="true" icon=false .nonincremental}
549549
## Partie 5 : un rapport reproductible pour documenter sa chaîne de production
550550

551551
Une bonne manière de favoriser à la fois la maintenabilité de sa chaîne et la réutilisationde ses produits est de documenter son fonctionnement. Le format [quarto](https://quarto.org) — successeur de `R Markdown` — permet de reproduire facilement des **rapports reproductibles, qui intègrent code et texte**. En plus, ces rapports peuvent être facilement publiés en différents formats, du plus **interactif** (`html`) aux plus classiques (`pdf`, `odt`, etc.).
552552

553553
:::
554554

555-
:::{.callout-tip collapse="true" icon=false .noincremental}
555+
:::{.callout-tip collapse="true" icon=false .nonincremental}
556556
## Partie 6 : automatiser la mise à disposition
557557

558558
On dispose finalement d'une chaîne **orchestrée, robuste et bien documentée**. Afin d'en faire une chaîne vraiment intégrée de bout en bout, on va **automatiser** les étapes, de sorte à ce que les modifications apportées au projet se répércutent sur ses sorties. Pour cela, on va utiliser les outils de l'**intégration continue** proposés par `GitHub` / `GitLab`.

slides/_r_fundamentals.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ if (x_is_not_empty_string) {
210210

211211
::::: {.columns}
212212

213-
:::: {.column .noincremental width="60%"}
213+
:::: {.column .nonincremental width="60%"}
214214

215215
- Un code mal structuré
216216
- Limite la [__lisibilité du projet__]{.blue2}

slides/applications_r/_application1.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ Dans cette application, on va explorer deux manières possibles de gérer les se
124124

125125
## Checkpoint
126126

127-
::: {.callout-caution .noincremental}
127+
::: {.callout-caution .nonincremental}
128128
## Checkpoint
129129

130130
* Le script [`script.R`](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application1/script.R)

slides/applications_r/_application2.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
## Checkpoint
4242

43-
::: {.callout-caution}
43+
::: {.callout-caution .nonincremental}
4444
## Checkpoint
4545

4646
* Le script [`script.R`](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application2/script.R)

slides/applications_r/_application3.qmd

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
# Partie 0 : préparation
1010

1111
* Remplacer le contenu du script `get_data.R` en copiant-collant le contenu de [ce fichier](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application3/get_data.R). Exécuter ce script, il importe les fichiers nécessaires pour cette application.
12-
* Créer un script `benchmark_parquet.R` afin de réaliser les comparaisons de performance des parties suivantes de l'application
1312

1413
:::
1514

@@ -18,8 +17,7 @@
1817
:::{.callout-tip .nonincremental collapse="true" icon=false}
1918
# Partie 0 : préparation
2019

21-
* Remplacer le contenu du script `get_data_ls3.R` en copiant-collant le contenu de [ce fichier](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application3/get_data_ls3.R). Exécuter ce script, il importe les fichiers nécessaires pour cette application.
22-
* Créer un script `benchmark_parquet.R` afin de réaliser les comparaisons de performance des parties suivantes de l'application
20+
* Remplacer le contenu du script `get_data.R` en copiant-collant le contenu de [ce fichier](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application3/get_data_ls3.R). Exécuter ce script, il importe les fichiers nécessaires pour cette application.
2321

2422
:::
2523

@@ -34,7 +32,7 @@
3432

3533
Tout au long de cette application, nous allons voir comment utiliser le format `Parquet` de manière la plus efficiente. Afin de comparer les différents formats et méthodes d'utilisation, nous allons **comparer le temps d'exécution et l'usage mémoire d'une requête standard**. Commençons par comparer les formats `CSV` et `Parquet`.
3634

37-
* Remplacer le contenu du script `get_data.R` en copiant-collant le contenu de [ce fichier](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application3/get_data.R). Exécuter ce script, il importe les fichiers nécessaires dans cette application
35+
* Créer un script `benchmark_parquet.R` afin de réaliser les différentes comparaisons de performance de l'application
3836
* Pour effectuer les comparaisons de performance, on va utiliser la fonction [bench::mark](https://bench.r-lib.org/#benchmark). Analyser la documentation pour comprendre ce que la fonction attend en entrée.
3937
* La requête suivante permet de calculer les données pour construire une pyramide des âges sur un département donné, à partir du fichier `CSV` du recensement. Encapsuler la requête dans une fonction `req_csv` (sans argument).
4038

@@ -77,20 +75,17 @@ _❓️ Quelle méthode retenir pour lire un `Parquet` avec `Arrow` ?_
7775
La *lazy evaluation* et les optimisations d'`Arrow` apportent des gain de performance considérables. Mais on peut encore faire mieux ! Lorsqu'on sait qu'on va être amené à **filter régulièrement les données selon une variable d'intérêt**, on a tout intérêt à **partitionner** le fichier `Parquet` selon cette variable.
7876

7977
* Parcourir la documentation de la fonction [arrow::write_dataset](https://arrow.apache.org/docs/r/reference/write_dataset.html) pour comprendre comment spécifier la clé de partitionnement d'un fichier `Parquet`. Plusieurs méthodes sont possibles !
80-
* Dans une même chaîne, importer la table individus complète du recensement `data/RPindividus.parquet` avec la fonction [arrow::open_dataset](https://arrow.apache.org/docs/r/reference/open_dataset.html) et l'exporter en une table `data/RPindividus_partitionne.parquet` partitionnée par la région (`REGION`) et le département (`DEPT`)
78+
* Importer la table individus complète du recensement `data/RPindividus.parquet` avec la fonction [arrow::open_dataset](https://arrow.apache.org/docs/r/reference/open_dataset.html) et l'exporter en une table `data/RPindividus_partitionne.parquet` partitionnée par la région (`REGION`) et le département (`DEPT`)
8179
* Observer l'arborescence de fichiers de la table exportée
8280
* Modifier la fonction `req_open_dataset` de la partie précédente pour partir de la table complète (non-partitionnée) `data/RPindividus.parquet` au lieu de l'échantillon
83-
* Construire une fonction `req_open_dataset_partitionne` sur le modèle de `req_open_dataset`, qui importe cette fois les données partitionnées `data/RPindividus_dept.parquet`. Ne pas oublier de spécifier le paramètre `hive_style = TRUE`.
81+
* Construire une fonction `req_open_dataset_partitionne` sur le modèle de `req_open_dataset`, qui importe cette fois les données partitionnées `data/RPindividus_partitionne.parquet`. Ne pas oublier de spécifier le paramètre `hive_style = TRUE`.
8482
* Comparer les performances (temps d'exécution et allocation mémoire) des deux méthodes grâce à la fonction [bench::mark](https://bench.r-lib.org/#benchmark)
8583

8684
:::
8785

8886
::: {.nonincremental}
8987

90-
_❓️ Dans le cadre d'une mise à disposition de données en `Parquet` :_
91-
92-
* _Comment bien choisir la/les clé(s) de partitionnement ?_
93-
* _Quelle est la limite à garder en tête ?_
88+
*❓️ Dans le cadre d'une mise à disposition de données en `Parquet`, comment bien choisir la/les clé(s) de partitionnement ? Quelle est la limite à garder en tête ?*
9489

9590
:::
9691

@@ -102,18 +97,17 @@ _❓️ Dans le cadre d'une mise à disposition de données en `Parquet` :_
10297

10398
Convaincus par ce comparatif, nous allons maintenant mettre à jour le format des données utilisées pour notre chaîne de production.
10499

105-
* Modifier le script `script.R` pour importer les données d'entrée de votre chaîne à partir de la table `Parquet` partitionnée par département
106-
* Vérifier que le code tourne de A à Z et l'adapter si ce n'est pas le cas
107-
*
100+
* Modifier le script `script.R` pour importer les données d'entrée de votre chaîne à partir de la table `Parquet` partitionnée `data/RPindividus_partitionne.parquet`
101+
* Vérifier que le script complet s'exécute correctement et l'adapter si ce n'est pas le cas
108102

109103
:::
110104

111-
_❓️ Cette mise à jour des données utilisées en source de la chaîne de production vous semble-t-elle complexe ? Pourquoi ?_
105+
_❓️ Cette mise à jour des données utilisées en source de la chaîne de production vous a-t-elle paru compliquée ? Pourquoi ?_
112106

113107

114108
## Checkpoint
115109

116-
::: {.callout-caution .noincremental}
110+
::: {.callout-caution .nonincremental}
117111
## Checkpoint
118112

119113
* Le script [`benchmark_parquet.R`](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application3/benchmark_parquet.R)

slides/applications_r/_application4.qmd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## {{< fa brands github >}}
66

7-
:::{.callout-tip collapse="true" icon=false .noincremental}
7+
:::{.callout-tip collapse="true" icon=false .nonincremental}
88
## Partie 1 : prise en main de la librairie `renv`
99

1010
1. Installer le package [`renv`](https://rstudio.github.io/renv/articles/renv.html)
@@ -77,7 +77,7 @@ ggplot(departements_60_plus_sf) +
7777

7878
## {{< fa brands gitlab >}} insee
7979

80-
:::{.callout-tip collapse="true" icon=false .noincremental}
80+
:::{.callout-tip collapse="true" icon=false .nonincremental}
8181
## Partie 1 : prise en main de la librairie `renv`
8282

8383
1. Installer le package [`renv`](https://rstudio.github.io/renv/articles/renv.html)
@@ -192,7 +192,7 @@ ggplot(departements_60_plus_sf) +
192192

193193
## {{< fa brands github >}}
194194

195-
::: {.callout-caution .noincremental}
195+
::: {.callout-caution .nonincremental}
196196
## Checkpoint
197197

198198
* Le script [`main.R`](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application4/main.R)
@@ -203,7 +203,7 @@ ggplot(departements_60_plus_sf) +
203203

204204
## {{< fa brands gitlab >}} insee
205205

206-
::: {.callout-caution .noincremental}
206+
::: {.callout-caution .nonincremental}
207207
## Checkpoint
208208

209209
* Le script [`main.R`](https://raw.githubusercontent.com/InseeFrLab/formation-bonnes-pratiques-git-R/refs/heads/main/R/checkpoints/application4/main_ls3.R)

0 commit comments

Comments
 (0)