Skip to content

Commit

Permalink
Proposition utilisation minio pour download openfood (#307)
Browse files Browse the repository at this point in the history
* prepare download s3

* mc s3

* dans le cours

* Automated changes

* Automated changes

* change box

* Automated changes

* Automated changes

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
linogaliana and github-actions[bot] committed Oct 28, 2022
1 parent 10a3ebb commit e3a6b2d
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 11 deletions.
28 changes: 26 additions & 2 deletions content/course/modern-ds/elastic_intro/functions.py
Expand Up @@ -8,24 +8,48 @@
import json
import time
import rapidfuzz
import s3fs

openfoodcols = ['product_name', 'energy_100g', 'nutriscore_score']
ENDPOINT_URL = "https://minio.lab.sspcloud.fr"

def import_openfood_s3(cols=openfoodcols, nrows = None):

fs = s3fs.S3FileSystem(
client_kwargs={"endpoint_url": ENDPOINT_URL}
)
fs.download(
"projet-relevanc/diffusion/openfood.csv",
"openfood.csv"
)

cols = pd.Series(cols)\
.str.replace('_score', '_grade')\
.tolist()

data = pd.read_csv(filepath_or_buffer='openfood.csv',
usecols=cols,
nrows = nrows,
encoding = 'utf-8')
data = data.dropna()

return data


def import_openfood(from_latest = False,cols=openfoodcols, nrows = None):
"""
Import and clean openfood data from https://fr.openfoodfacts.org/data
see https://world.openfoodfacts.org/terms-of-use
see https://world.openfoodfacts.org/terms-of-use
:param cols: A list of columns that is passed to pandas.read_csv to subset
the file and speedup import. Default to None which means all columns
are imported
:return: A pandas.DataFrame
"""

if os.path.isfile("openfood.csv") is False:
urllib.request.urlretrieve("https://static.openfoodfacts.org/data/en.openfoodfacts.org.products.csv", "openfood.csv")
urllib.request.urlretrieve(
"https://static.openfoodfacts.org/data/en.openfoodfacts.org.products.csv", "openfood.csv"
)

data = pd.read_csv(filepath_or_buffer='openfood.csv',
delimiter="\t",
Expand Down
31 changes: 22 additions & 9 deletions content/course/modern-ds/elastic_intro/index.qmd
Expand Up @@ -214,11 +214,27 @@ dont on désire connaître les caractéristiques.
## Import

Quelques fonctions utiles sont regroupées dans le script `functions.py` et importées dans le _notebook_.
La base `OpenFood` peut être récupérée en ligne (opération qui peut prendre un peu de temps,
on passe ici par le stockage interne de la plateforme en spécifiant `from_latest=False`).
La base `Ciqual`, plus légère, est récupérée elle directement en ligne.

La base `OpenFood` peut être récupérée en ligne
via la fonction `fc.import_openfood`. Néanmoins, cette opération nécessitant
un certain temps (les données brutes faisant autour de 2Go), nous proposons une méthode
pour les utilisateurs du `SSP-Cloud` où une version est disponible sur
l'espace de stockage.

La base `Ciqual`, qui plus légère, est récupérée elle directement en ligne
via la fonction `fc.import_ciqual`.

```{python}
#| eval: false
# Pour les utilisateurs du SSP-Cloud
openfood = fc.import_openfood_s3()
# Pour les utilisateurs hors du SSP-Cloud
# openfood = fc.import_openfood()
ciqual = fc.import_ciqual()
```

```{python}
#| echo: false
openfood = fc.import_openfood()
ciqual = fc.import_ciqual()
```
Expand Down Expand Up @@ -408,9 +424,7 @@ la cuisson est souvent renseignée et bruite les appariemments.

## Démarche

```{=html}
<div class="alert alert-success" role="alert">
```
{{% box status="exercise" title="Exercice 1" icon="fas fa-pencil-alt" %}}

**Exercice 1: preprocessing**

Expand Down Expand Up @@ -446,9 +460,8 @@ final.
6. __(Optionnel)__. Comme exercice supplémentaire, faire la même chose avec les
_pipelines_ `SpaCy`.

```{=html}
</div>
```
{{% /box %}}


A l'issue de la question 1, le jeu de données `ciqual` devrait
ressembler à celui-ci:
Expand Down

0 comments on commit e3a6b2d

Please sign in to comment.