Skip to content

Commit

Permalink
Ajoute détails arrow dans la partie S3 (#220)
Browse files Browse the repository at this point in the history
* ajoute détails arrow

* 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 Mar 9, 2022
1 parent 9c71d6e commit 3b1d9ff
Showing 1 changed file with 40 additions and 5 deletions.
45 changes: 40 additions & 5 deletions content/course/manipulation/05a_s3.Rmd
Expand Up @@ -198,7 +198,7 @@ d'une erreur dans l'URL utilisé. Cependant, cela reflète plus généralement
des paramètres d'authentification erronés.


{{< tabs tabTotal="3" >}}
{{< tabs tabTotal="4" >}}
{{% tab tabName="boto3" %}}

Les paramètres d'authentification sont des arguments supplémentaires:
Expand Down Expand Up @@ -227,6 +227,24 @@ fs = s3fs.S3FileSystem(

{{% /tab %}}

{{% tab tabName="Arrow" %}}

Tout est en argument cette fois:

```{python, eval=FALSE}
from pyarrow import fs
s3 = fs.S3FileSystem(
access_key = key_id,
secret_key = access_key,
session_token = token,
endpoint_override = 'https://'+'minio.lab.sspcloud.fr',
scheme = "https"
)
```

{{% /tab %}}

{{% tab tabName="Snakemake" %}}

La logique est la même, seuls les noms d'arguments diffèrent
Expand Down Expand Up @@ -420,20 +438,37 @@ rule ma_super_regle_s3:

{{% tab tabName="Arrow" %}}

`Arrow` est une librairie qui permet de lire des `CSV` (il est néanmoins
beaucoup plus pratique d'utiliser le format `parquet` avec `arrow`)
`Arrow` est une librairie qui permet de lire des `CSV`.
Il est néanmoins
beaucoup plus pratique d'utiliser le format `parquet` avec `arrow`.
Dans un premier temps, on configure le _filesystem_ avec les
fonctionalités d'`Arrow` (cf. précédemment).

```{python}
from pyarrow import fs, csv
from pyarrow import fs
s3 = fs.S3FileSystem(endpoint_override='http://'+'minio.lab.sspcloud.fr')
```

Pour lire un csv, on fera:

```{python, eval = FALSE}
from pyarrow import csv
with s3.open_input_file("donnees-insee/FILOSOFI/2014/FILOSOFI_COM.csv") as file:
df = csv.read_csv(file, parse_options=csv.ParseOptions(delimiter=";")).to_pandas()
df = csv.read_csv(file, parse_options=csv.ParseOptions(delimiter=";")).to_pandas()
df.head(2)
```

Pour un fichier au format parquet, on privilégiera:

```{python, eval = FALSE}
#bucket = ""
parquet_file=""
df = pq.ParquetDataset(f'{bucket}/{parquet_file}', filesystem=s3).read_pandas().to_pandas()
```

{{% /tab %}}

{{< /tabs >}}
Expand Down

0 comments on commit 3b1d9ff

Please sign in to comment.