Ce tutoriel vous fournit des informations sur la conversion de data_access_sdk_python
en nouveau platform_sdk
Python en Python et en R. Ce tutoriel fournit des informations sur les opérations suivantes :
L’authentification est requise pour effectuer des appels vers Adobe Experience Platform, et comprend une clé API, un ID d’organisation, un jeton utilisateur et un jeton de service.
Si vous utilisez Jupyter Notebook, veuillez utiliser le code ci-dessous pour créer le client_context
:
client_context = PLATFORM_SDK_CLIENT_CONTEXT
Si vous n’utilisez pas Jupyter Notebook ou si vous devez modifier l’organisation, utilisez l’exemple de code suivant :
from platform_sdk.client_context import ClientContext
client_context = ClientContext(api_key={API_KEY},
org_id={ORG_ID},
user_token={USER_TOKEN},
service_token={SERVICE_TOKEN})
Si vous utilisez Jupyter Notebook, veuillez utiliser le code ci-dessous pour créer le client_context
:
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
py_run_file("../.ipython/profile_default/startup/platform_sdk_context.py")
client_context <- py$PLATFORM_SDK_CLIENT_CONTEXT
Si vous n’utilisez pas Jupyter Notebook ou si vous devez changer d’organisation, utilisez l’exemple de code suivant :
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
client_context <- psdk$client_context$ClientContext(api_key={API_KEY},
org_id={ORG_ID},
user_token={USER_TOKEN},
service_token={SERVICE_TOKEN})
Avec la nouvelle Platform SDK, la taille de lecture maximale est de 32 Go, avec un temps de lecture maximal de 10 minutes.
Si votre temps de lecture est trop long, vous pouvez essayer d’utiliser l’une des options de filtrage suivantes :
L’organisation est définie dans la variable client_context
.
Pour lire les données en Python, veuillez utiliser l’exemple de code ci-dessous :
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(client_context, "{DATASET_ID}")
df = dataset_reader.limit(100).read()
df.head()
Pour lire les données en R, utilisez l’exemple de code ci-dessous :
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(client_context, "{DATASET_ID}")
df <- dataset_reader$read()
df
Le filtrage par identifiant de lot n’étant plus pris en charge, vous devez utiliser offset
et limit
pour étendre la lecture des données.
df = dataset_reader.limit(100).offset(1).read()
df.head
df <- dataset_reader$limit(100L)$offset(1L)$read()
df
La granularité du filtrage par date est désormais définie par la date et l’heure, plutôt que par le jour.
df = dataset_reader.where(\
dataset_reader['timestamp'].gt('2019-04-10 15:00:00').\
And(dataset_reader['timestamp'].lt('2019-04-10 17:00:00'))\
).read()
df.head()
df2 <- dataset_reader$where(
dataset_reader['timestamp']$gt('2018-12-10 15:00:00')$
And(dataset_reader['timestamp']$lt('2019-04-10 17:00:00'))
)$read()
df2
La nouvelle Platform Le SDK prend en charge les opérations suivantes :
Opération | Fonction |
---|---|
Est égal à (= ) |
eq() |
Supérieur à (> ) |
gt() |
Supérieur ou égal à (>= ) |
ge() |
Inférieur à (< ) |
lt() |
Inférieur ou égal à (<= ) |
le() |
Et (& ) |
And() |
Ou (` | `) |
Pour affiner davantage votre lecture des données, vous pouvez également filtrer par nom de colonne.
df = dataset_reader.select(['column-a','column-b']).read()
df <- dataset_reader$select(c('column-a','column-b'))$read()
Les résultats obtenus peuvent être triés en fonction de colonnes spécifiques du jeu de données cible et dans leur ordre respectif (croissant/décroissant).
Dans l’exemple suivant, le cadre de données est trié par « colonne-a » en premier, dans l’ordre croissant. Les lignes ayant les mêmes valeurs pour « colonne-a » sont ensuite triées en fonction de « colonne-b » dans l’ordre décroissant.
df = dataset_reader.sort([('column-a', 'asc'), ('column-b', 'desc')])
df <- dataset_reader$sort(c(('column-a', 'asc'), ('column-b', 'desc')))$read()
L’organisation est définie dans la variable client_context
.
Pour écrire des données en Python et en R, utilisez l’un des exemples suivants :
from platform_sdk.models import Dataset
from platform_sdk.dataset_writer import DatasetWriter
dataset = Dataset(client_context).get_by_id("{DATASET_ID}")
dataset_writer = DatasetWriter(client_context, dataset)
write_tracker = dataset_writer.write({PANDA_DATAFRAME}, file_format='json')
dataset <- psdk$models$Dataset(client_context)$get_by_id("{DATASET_ID}")
dataset_writer <- psdk$dataset_writer$DatasetWriter(client_context, dataset)
write_tracker <- dataset_writer$write({PANDA_DATAFRAME}, file_format='json')
Une fois que vous avez configuré l’outil de chargement de données platform_sdk
, les données sont préparées puis réparties dans les jeux de données train
et val
. Pour en savoir plus sur la préparation des données et la conception des fonctionnalités, consultez la section sur la préparation des données et la conception des fonctionnalités du tutoriel sur la création d’une recette à l’aide des notebooks JupyterLab