Este tutorial proporciona información sobre la conversión data_access_sdk_python
al nuevo Python platform_sdk
tanto en Python como en R. Este tutorial proporciona información sobre las siguientes operaciones:
Se requiere autenticación para realizar llamadas a Adobe Experience Platformy se compone de una clave de API, un ID de organización, un token de usuario y un token de servicio.
Si está utilizando Jupyter Notebook, utilice el siguiente código para crear el client_context
:
client_context = PLATFORM_SDK_CLIENT_CONTEXT
Si no utiliza Jupyter Notebook o necesita cambiar la organización, utilice el siguiente ejemplo de código:
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 está utilizando Jupyter Notebook, utilice el siguiente código 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 utiliza Jupyter Notebook o necesita cambiar de organización, utilice el siguiente ejemplo de código:
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})
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 está tardando demasiado, puede intentar utilizar una de las siguientes opciones de filtrado:
La organización se configura dentro de client_context
.
Para leer datos en Python, utilice el ejemplo de código 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 datos en R, utilice el siguiente ejemplo de código:
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(client_context, "{DATASET_ID}")
df <- dataset_reader$read()
df
Dado que ya no se admite el filtrado por ID de lote, para ampliar el ámbito de lectura de los datos, 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 filtrado de fechas ahora se define mediante la marca de tiempo, no 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() |
Mayor o igual que (>= ) |
ge() |
Menos de (< ) |
lt() |
Less than or equal to (<= ) |
le() |
Y (& ) |
And() |
O (` | `) |
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 ejemplo siguiente, dataframe se ordena por "column-a" primero en orden ascendente. Las filas que tienen los mismos valores para la columna a se ordenan por la 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 se configura dentro de 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 que haya configurado el platform_sdk
cargador de datos, los datos se preparan y se dividen en el train
y val
conjuntos de datos. Para obtener más información acerca de la preparación de datos y la ingeniería de funciones, visite la sección sobre preparación de datos e ingeniería de funciones en el tutorial para crear una fórmula con JupyterLab cuadernos.