> For the complete documentation index, see [llms.txt](https://cleyrop.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cleyrop.gitbook.io/docs/projet-data-and-ia/dataflow/comprendre-les-dataflows/exemple-de-code.md).

# Exemple de code

## Récupération de données via API

Il est possible de créer des dataflows python sans dataset d'entrée. Cela est utile pour créer un dataset via l'interrogation de données externe à la plateforme (API, Web, base de données, ...).

**Exemple de code utilisant PySpark** :

{% code title="pyspark API call" %}

```python
import requests
import pyspark.pandas as ps

# URL of the API
url = "https://public.opendatasoft.com/api/explore/v2.1/catalog/datasets/population-francaise-communes/records?select=sum(population_totale)%20as%20population_totale&where=annee_utilisation%20%3E%202018&group_by=code_departement&limit=100"

# Fetch the data from the API
response = requests.get(url)
data = response.json()

# Create DataFrame
df = ps.DataFrame(data["results"])
df = df[df['code_departement'].notna()]

return df
```

{% endcode %}

**Exemple de code utilisant Polars :**

{% code title="Polars API call" %}

```python
import requests
import polars as pl

# URL of the API
url = "https://public.opendatasoft.com/api/explore/v2.1/catalog/datasets/population-francaise-communes/records?select=sum(population_totale)%20as%20population_totale&where=annee_utilisation%20%3E%202018&group_by=code_departement&limit=100"

# Fetch the data from the API
response = requests.get(url)
data = response.json()

# Create DataFrame
df = pl.DataFrame(data["results"]).lazy()
df = df.filter(pl.col("code_departement").is_not_null())
```

{% endcode %}
