Este tutorial fornece informações sobre conversão data_access_sdk_python
ao novo Python platform_sdk
em Python e R. Este tutorial fornece informações sobre as seguintes operações:
A autenticação é necessária para fazer chamadas para Adobe Experience Platforme é composto por Chave da API, ID da Org do IMS, um token de usuário e um token de serviço.
Se estiver usando o notebook Jupyter, use o código abaixo para criar o client_context
:
client_context = PLATFORM_SDK_CLIENT_CONTEXT
Se você não estiver usando o Jupyter Notebook ou precisar alterar a IMS Org, use a amostra de código abaixo:
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})
Se estiver usando o notebook Jupyter, use o código abaixo para criar o 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
Se você não estiver usando o Jupyter Notebook ou precisar alterar a IMS Org, use a amostra de código abaixo:
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})
Com o novo Platform SDK, o tamanho máximo de leitura é de 32 GB, com um tempo máximo de leitura de 10 minutos.
Se o tempo de leitura estiver demorando muito, tente usar uma das seguintes opções de filtragem:
A Organização IMS é definida na variável client_context
.
Para ler dados em Python, use a amostra de código abaixo:
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(client_context, "{DATASET_ID}")
df = dataset_reader.limit(100).read()
df.head()
Para ler os dados em R, use a amostra de código abaixo:
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(client_context, "{DATASET_ID}")
df <- dataset_reader$read()
df
Como a filtragem por ID de lote não é mais suportada, para escopo da leitura de dados, é necessário usar offset
e limit
.
df = dataset_reader.limit(100).offset(1).read()
df.head
df <- dataset_reader$limit(100L)$offset(1L)$read()
df
A granularidade da filtragem de datas agora é definida pelo carimbo de data e hora, em vez de ser definida pelo dia.
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
O novo Platform O SDK é compatível com as seguintes operações:
Operação | Função |
---|---|
Igual a (= ) |
eq() |
Greater than (> ) |
gt() |
Maior que ou igual a (>= ) |
ge() |
Menos que (< ) |
lt() |
Less than or equal to (<= ) |
le() |
E (& ) |
And() |
Ou (` | `) |
Para refinar ainda mais a leitura de dados, também é possível filtrar por nome de coluna.
df = dataset_reader.select(['column-a','column-b']).read()
df <- dataset_reader$select(c('column-a','column-b'))$read()
Os resultados recebidos podem ser classificados por colunas especificadas do conjunto de dados de destino e em sua ordem (asc/desc), respectivamente.
No exemplo a seguir, o dataframe é classificado por "coluna-a" primeiro em ordem crescente. As linhas que têm os mesmos valores para "coluna-a" são classificadas por "coluna-b" em ordem decrescente.
df = dataset_reader.sort([('column-a', 'asc'), ('column-b', 'desc')])
df <- dataset_reader$sort(c(('column-a', 'asc'), ('column-b', 'desc')))$read()
A Organização IMS é definida na variável client_context
.
Para gravar dados em Python e R, use um dos seguintes exemplos:
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')
Depois de configurar o platform_sdk
carregador de dados, os dados são preparados e depois divididos em train
e val
conjuntos de dados. Para saber mais sobre a preparação de dados e a engenharia de recursos, visite a seção em preparação de dados e engenharia de recursos no tutorial para criar uma receita usando JupyterLab notebooks.