Skip to content

Commit daadfde

Browse files
Ajout des fichiers Parquet 🎁 (#90)
* ajout source RP 2021 en parquet * correction liste données * montée de version et ajout de arrow dans les deps * insertion méthode pour parquet * insertion nouveaux tests et correctifs
1 parent 1ea5c1e commit daadfde

File tree

9 files changed

+137
-4
lines changed

9 files changed

+137
-4
lines changed

DESCRIPTION

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: doremifasol
22
Title: Data on Insee Website
3-
Version: 0.5.3.9001
3+
Version: 0.5.4.9001
44
Authors@R: c(
55
person("Pierre", "Lamarche", email = "[email protected]", role = c("aut", "cre")),
66
person("Pierre-Yves", "Berrard", role = "aut", email = "[email protected]"),
@@ -13,7 +13,7 @@ Authors@R: c(
1313
Description: A package primarily intended for Insee staff members willing to use R in order to exploit and analyse data produced by the institute. This package makes it possible to either download on-the-fly the date from the website, or load pre-processed data. It also provides a (so far non comprehensive) list of datasets available on the website.
1414
Language: fr
1515
Depends: R (>= 3.5.0)
16-
Imports: readr, readxl, httr, apinsee, jsonlite, curl, DT
16+
Imports: readr, readxl, httr, apinsee, jsonlite, curl, DT, arrow
1717
Suggests:
1818
tidyverse,
1919
data.table,

R/chargerDonnees.R

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ chargerDonnees <- function(telechargementFichier, vars = NULL, ...) {
5151
switch(
5252
telechargementFichier$type,
5353
"csv" = telechargementFichier$argsImport$file,
54+
"parquet" = telechargementFichier$argsImport$file,
5455
"json" = telechargementFichier$argsImport$fichier,
5556
telechargementFichier$argsImport$path # (autres extensions)
5657
)
@@ -100,6 +101,10 @@ chargerDonnees <- function(telechargementFichier, vars = NULL, ...) {
100101
if (!is.null(vars))
101102
warning("Il n'est pas possible de filtrer les variables charg\u00e9es en m\u00e9moire sur le format JSON pour le moment.")
102103
res <- do.call(chargerDonneesJson, telechargementFichier$argsImport)
104+
} else if (telechargementFichier$type == "parquet") {
105+
if (!is.null(vars))
106+
telechargementFichier$argsImport$col_select <- vars
107+
res <- do.call(arrow::read_parquet, telechargementFichier$argsImport)
103108
} else stop("Type de fichier inconnu")
104109

105110
# ajout attribut source (pour data.frames hors API)

R/sysdata.rda

394 Bytes
Binary file not shown.

R/telechargerFichier.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ telechargerFichier <- function(donnees, date=NULL, telDir=getOption("doremifasol
8282
argsImport[["na"]] <- unlist(strsplit(caract$valeurs_manquantes, "/"))
8383
} else if (caract$type == "xlsx") {
8484
argsImport <- list(path = fichierAImporter, sheet = caract$onglet, skip = caract$premiere_ligne - 1)
85+
} else if (caract$type == "parquet") {
86+
argsImport <- list(file = fichierAImporter)
8587
}
8688

8789
if (!is.null(caract$type_col)) {

data-raw/liste_donnees.json

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31053,6 +31053,114 @@
3105331053
"md5": "57d1bb19fa855c3c8aff37012230cd3d",
3105431054
"size": 213044256
3105531055
},
31056+
{
31057+
"nom": "RP_LOGEMENT",
31058+
"libelle": "Données du Recensement de Population, table logements ordinaires",
31059+
"date_ref": "2021-01-01",
31060+
"collection": "RP",
31061+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8268903/RP2021_logemt.parquet",
31062+
"type": "parquet",
31063+
"zip": false,
31064+
"api_rest": false,
31065+
"md5": "e23f0bf95dbb50f227631c53a2fc5ccd",
31066+
"size": 525493199
31067+
},
31068+
{
31069+
"nom": "RP_INDCVI",
31070+
"libelle": "Données du Recensement de Population, table individus au canton-ou-ville",
31071+
"date_ref": "2021-01-01",
31072+
"collection": "RP",
31073+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8268848/RP2021_indcvi.parquet",
31074+
"type": "parquet",
31075+
"zip": false,
31076+
"api_rest": false,
31077+
"md5": "d3aaba7549201be1282ef32074eb43e3",
31078+
"size": 487646864
31079+
},
31080+
{
31081+
"nom": "RP_INDREG",
31082+
"libelle": "Données du Recensement de Population, table individus à la région",
31083+
"date_ref": "2021-01-01",
31084+
"collection": "RP",
31085+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205946/RP2021_indreg.parquet",
31086+
"type": "parquet",
31087+
"zip": false,
31088+
"api_rest": false,
31089+
"md5": "d05b59062ba5d1903c4f88c4b1db85c6",
31090+
"size": 621117385
31091+
},
31092+
{
31093+
"nom": "RP_MOBSCO",
31094+
"libelle": "Données du Recensement de Population, table des mobilités scolaires",
31095+
"date_ref": "2021-01-01",
31096+
"collection": "RP",
31097+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205892/RP2021_mobsco.parquet",
31098+
"type": "parquet",
31099+
"zip": false,
31100+
"api_rest": false,
31101+
"md5": "7c6f8f786c0484ce2ee58726b5efbab5",
31102+
"size": 25200366
31103+
},
31104+
{
31105+
"nom": "RP_MOBPRO",
31106+
"libelle": "Données du Recensement de Population, table des mobilités professionnelles",
31107+
"date_ref": "2021-01-01",
31108+
"collection": "RP",
31109+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205896/RP2021_mobpro.parquet",
31110+
"type": "parquet",
31111+
"zip": false,
31112+
"api_rest": false,
31113+
"md5": "8505b978590a1f0ec97d5b28540b8530",
31114+
"size": 65468958
31115+
},
31116+
{
31117+
"nom": "RP_MOBZELT",
31118+
"libelle": "Données du Recensement de Population, table des mobilités dans les zones d’emploi",
31119+
"date_ref": "2021-01-01",
31120+
"collection": "RP",
31121+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205270/RP2021_mobzelt.parquet",
31122+
"type": "parquet",
31123+
"zip": false,
31124+
"api_rest": false,
31125+
"md5": "1513ddf99dcb58fba8c78cf013c70690",
31126+
"size": 96115197
31127+
},
31128+
{
31129+
"nom": "RP_MIGCOM",
31130+
"libelle": "Données du Recensement de Population, table des mobilités résidentielles avec localisation à la commune antérieure",
31131+
"date_ref": "2021-01-01",
31132+
"collection": "RP",
31133+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205829/RP2021_migcom.parquet",
31134+
"type": "parquet",
31135+
"zip": false,
31136+
"api_rest": false,
31137+
"md5": "2d46438e4c3834e8a2c1f1cdf89c78f2",
31138+
"size": 175333309
31139+
},
31140+
{
31141+
"nom": "RP_MIGGCO",
31142+
"libelle": "Données du Recensement de Population, table des mobilités résidentielles avec localisation au pays antérieur",
31143+
"date_ref": "2021-01-01",
31144+
"collection": "RP",
31145+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205886/RP2021_miggco.parquet",
31146+
"type": "parquet",
31147+
"zip": false,
31148+
"api_rest": false,
31149+
"md5": "bebd2ea96aebe802e1cf1f6aee64d9a3",
31150+
"size": 129149792
31151+
},
31152+
{
31153+
"nom": "RP_MIGDEP",
31154+
"libelle": "Données du Recensement de Population, table des mobilités avec localisation au département antérieur",
31155+
"date_ref": "2021-01-01",
31156+
"collection": "RP",
31157+
"lien": "https://www.insee.fr/fr/statistiques/fichier/8205841/RP2021_migdep.parquet",
31158+
"type": "parquet",
31159+
"zip": false,
31160+
"api_rest": false,
31161+
"md5": "23f452985278b2b6eda55c806606d1ba",
31162+
"size": 191434659
31163+
},
3105631164
{
3105731165
"nom": "SIRENE_SIREN",
3105831166
"libelle": "Données du répertoire Sirène depuis 1973, unités légales",

data/liste_donnees.rda

386 Bytes
Binary file not shown.

tests/testthat/test_liste_donnees.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ test_that("pas de valeurs incongrues", {
2222
)
2323

2424
# lien (motif, pas existence)
25-
url_pattern <- "^https://www.insee.fr/fr/statistiques/fichier/\\d{5,}/.+\\.(zip|xls|xlsx)$"
25+
url_pattern <- "^https://www.insee.fr/fr/statistiques/fichier/\\d{5,}/.+\\.(zip|xls|xlsx|parquet)$"
2626
api_url_pattern <- "^https://api.insee.fr/entreprises/sirene(/V3.11)?/sire[nt](/(liensSuccession|nonDiffusibles))?$"
2727
expect_true(
2828
all(grepl(paste0(url_pattern, "|", api_url_pattern), df_ld$lien))
@@ -33,7 +33,7 @@ test_that("pas de valeurs incongrues", {
3333
all(df_ld$type[df_ld$api_rest] == "json")
3434
)
3535
expect_true(
36-
all(df_ld$type[!df_ld$api_rest] %in% c("csv", "xls", "xlsx"))
36+
all(df_ld$type[!df_ld$api_rest] %in% c("csv", "xls", "xlsx", "parquet"))
3737
)
3838

3939
# zip

tests/testthat/test_telechargerDonnees.R

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,20 @@ test_that("Importation type XLSX - output data.frame", {
6969
"list"
7070
)
7171
})
72+
## test import de données parquet
73+
test_that("Importation type parquet - output data.frame", {
74+
expect_s3_class(
75+
telechargerDonnees("RP_MOBSCO", date = 2021),
76+
c("insee_data_frame", "data.frame"),
77+
exact = TRUE
78+
)
79+
})
80+
## test import de qq variables parquet
81+
test_that("Importation type parquet - sélection de variables", {
82+
expect_true(
83+
length(names(telechargerDonnees("RP_MOBSCO", date = 2021, vars = c("COMMUNE", "ARM")))) == 2
84+
)
85+
})
7286
## test sélection des variables
7387
test_that("Sélection de variables dans la BPE", {
7488
expect_true(length(names(telechargerDonnees(donnees = "BPE_ENS", vars = c("GEO", "GEO_OBJECT", "FACILITY_TYPE", "OBS_VALUE")))) == 4)

tests/testthat/test_telechargerFichier.R

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ test_that("Télécharger type XLS - output correct", {
5656
test_that("Télécharger type XLSX - output correct", {
5757
expect_true(telechargerFichier("AIRE_URBAINE")$result == 0)
5858
})
59+
## test dl de données parquet
60+
test_that("Télécharger type parquet - output correct", {
61+
expect_true(telechargerFichier("RP_MOBSCO", 2021)$result == 0)
62+
})
5963
## test spécification de l'encodage
6064
test_that("Télécharger des données avec un encodage spécifique", {
6165
expect_true(!is.null(telechargerFichier("COG_COMMUNE", date = "2018")$argsImport$locale))

0 commit comments

Comments
 (0)