Este tutorial le proporciona información sobre la conversión data_access_sdk_python
al nuevo Python platform_sdk
en Python y R. Este tutorial proporciona información sobre las siguientes operaciones:
La autenticación es necesaria para realizar llamadas a Adobe Experience Platformla clave de API, el ID de organización de IMS, un token de usuario y un token de servicio.
Si está utilizando un bloc de notas Jupyter, utilice el código siguiente para crear el client_context
:
client_context = PLATFORM_SDK_CLIENT_CONTEXT
Si no está utilizando Jupyter Notebook o necesita cambiar la organización de IMS, utilice el siguiente código de muestra:
from platform_sdk.client_context import ClientContext
client_context = ClientContext(api_key={API_KEY},
org_id={IMS_ORG},
user_token={USER_TOKEN},
service_token={SERVICE_TOKEN})
Si está utilizando un bloc de notas Jupyter, utilice el código siguiente para crear el 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 no está utilizando Jupyter Notebook o necesita cambiar la organización de IMS, utilice el siguiente código de muestra:
library(reticulate)
use_python("/usr/local/bin/ipython")
psdk <- import("platform_sdk")
client_context <- psdk$client_context$ClientContext(api_key={API_KEY},
org_id={IMS_ORG},
user_token={USER_TOKEN},
service_token={SERVICE_TOKEN})
Con el nuevo Platform SDK, el tamaño máximo de lectura es de 32 GB, con un tiempo máximo de lectura de 10 minutos.
Si el tiempo de lectura tarda demasiado, puede intentar utilizar una de las siguientes opciones de filtrado:
La organización de IMS se establece dentro de la client_context
.
Para leer datos en Python, utilice el código de muestra siguiente:
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(client_context, "{DATASET_ID}")
df = dataset_reader.limit(100).read()
df.head()
Para leer los datos en R, utilice el código de muestra siguiente:
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(client_context, "{DATASET_ID}")
df <- dataset_reader$read()
df
Ya no se admite el filtrado por ID de lote, por lo que debe utilizar offset
y limit
.
df = dataset_reader.limit(100).offset(1).read()
df.head
df <- dataset_reader$limit(100L)$offset(1L)$read()
df
La granularidad del filtro de fechas ahora se define mediante la marca de tiempo, en lugar de establecerse por el día.
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
El nuevo Platform SDK admite las siguientes operaciones:
Operación | Función |
---|---|
Es igual a (= ) |
eq() |
Greater than (> ) |
gt() |
Greater than or equal to (>= ) |
ge() |
Less than (< ) |
lt() |
Less than or equal to (<= ) |
le() |
And (& ) |
And() |
O (| ) |
Or() |
Para restringir aún más la lectura de datos, también puede filtrar por nombre de columna.
df = dataset_reader.select(['column-a','column-b']).read()
df <- dataset_reader$select(c('column-a','column-b'))$read()
Los resultados recibidos se pueden ordenar por columnas especificadas del conjunto de datos de destinatario y en su orden (asc/desc) respectivamente.
En el siguiente ejemplo, dataframe se ordena primero por "column-a" en orden ascendente. Las filas que tienen los mismos valores para "columna-a" se ordenan por "columna-b" en orden descendente.
df = dataset_reader.sort([('column-a', 'asc'), ('column-b', 'desc')])
df <- dataset_reader$sort(c(('column-a', 'asc'), ('column-b', 'desc')))$read()
La organización de IMS se establece dentro de la client_context
.
Para escribir datos en Python y R, utilice uno de los siguientes ejemplos:
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')
Una vez configurado el cargador de datos, los datos se preparan y luego se dividen en los conjuntos de datos platform_sdk
y train
val
. Para obtener más información sobre la preparación de datos y la ingeniería de características, visite la sección sobre la preparación de datos y la ingeniería de características en el tutorial para crear una fórmula con JupyterLab portátiles.