Le document suivant contient des exemples d’accès aux données à l’aide de Python pour une utilisation dans Data Science Workspace. Pour plus d'informations sur l'accès aux données à l'aide des blocs-notes JupyterLab, consultez la documentation relative à l'accès aux données des blocs-notes JupyterLab.
Après avoir défini les variables d'environnement et terminé l'installation, votre jeu de données peut maintenant être lu dans la base de données pandas.
import pandas as pd
from .utils import get_client_context
from platform_sdk.dataset_reader import DatasetReader
def load(config_properties):
client_context = get_client_context(config_properties)
dataset_reader = DatasetReader(client_context, config_properties['DATASET_ID'])
df = dataset_reader.read()
df = dataset_reader.select(['column-a','column-b']).read()
client_context = get_client_context(config_properties)
dataset = Dataset(client_context).get_by_id({DATASET_ID})
partitions = dataset.get_partitions_info()
La clause DISTINCT vous permet de récupérer toutes les valeurs distinctes au niveau de la ligne/colonne, en supprimant toutes les valeurs de duplicata de la réponse.
Vous trouverez ci-dessous un exemple d'utilisation de la fonction distinct()
:
df = dataset_reader.select(['column-a']).distinct().read()
Vous pouvez utiliser certains opérateurs en Python pour vous aider à filtrer votre jeu de données.
Les fonctions utilisées pour le filtrage sont sensibles à la casse.
eq() = '='
gt() = '>'
ge() = '>='
lt() = '<'
le() = '<='
And = and operator
Or = or operator
Vous trouverez ci-dessous un exemple d’utilisation de ces fonctions de filtrage :
df = dataset_reader.where(experience_ds['timestamp'].gt(87879779797).And(experience_ds['timestamp'].lt(87879779797)).Or(experience_ds['a'].eq(123)))
La clause ORDER BY permet de trier les résultats reçus selon une colonne spécifiée dans un ordre spécifique (croissant ou décroissant). Pour ce faire, utilisez la fonction sort()
.
Vous trouverez ci-dessous un exemple d'utilisation de la fonction sort()
:
df = dataset_reader.sort([('column_1', 'asc'), ('column_2', 'desc')])
La clause LIMIT vous permet de limiter le nombre d'enregistrements reçus du jeu de données.
Vous trouverez ci-dessous un exemple d'utilisation de la fonction limit()
:
df = dataset_reader.limit(100).read()
La clause OFFSET vous permet de sauter des lignes du début au début de renvoyer des lignes d’un point ultérieur. En combinaison avec LIMIT, vous pouvez l’utiliser pour itérer des lignes dans des blocs.
Vous trouverez ci-dessous un exemple d'utilisation de la fonction offset()
:
df = dataset_reader.offset(100).read()
Pour écrire dans un jeu de données, vous devez fournir le cadre de données pandas à votre jeu de données.
client_context = get_client_context(config_properties)
# To fetch existing dataset
dataset = Dataset(client_context).get_by_id({DATASET_ID})
dataset_writer = DatasetWriter(client_context, dataset)
write_tracker = dataset_writer.write(<your_dataFrame>, file_format='json')
Pour les tâches à exécution plus longue, vous devrez peut-être stocker des étapes intermédiaires. Dans de tels cas, vous pouvez lire et écrire dans un espace utilisateur.
Les chemins d’accès aux données sont non stockés. Vous devez stocker le chemin d’accès correspondant à ses données respectives.
client_context = get_client_context(config_properties)
user_helper = UserSpaceHelper(client_context)
user_helper.write(data_frame=<data_frame>, path=<path_to_directory>, ref_dataset_id=<ref_dataset_id>)
client_context = get_client_context(config_properties)
user_helper = UserSpaceHelper(client_context)
my_df = user_helper.read(path=<path_to_directory>, ref_dataset_id=<ref_dataset_id>)
Adobe Experience Platform Data Science Workspace fournit un exemple de recette qui utilise les exemples de code ci-dessus pour lire et écrire des données. Si vous souhaitez en savoir plus sur l'utilisation de Python pour accéder à vos données, consultez le référentiel Python GitHub de Data Science Workspace.