本教學課程提供轉換的相關資訊 data_access_sdk_python
新蟒蛇 platform_sdk
在Python和R中。本教程提供了有關以下操作的資訊:
必須進行驗證才能對 Adobe Experience Platform,且由API金鑰、IMS組織ID、使用者代號和服務代號組成。
如果您使用Jupyter筆記型電腦,請使用以下代碼來建立 client_context
:
client_context = PLATFORM_SDK_CLIENT_CONTEXT
如果您未使用Jupyter筆記型電腦,或需要變更IMS組織,請使用下列程式碼範例:
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})
如果您使用Jupyter筆記型電腦,請使用以下代碼來建立 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
如果您未使用Jupyter筆記型電腦,或需要變更IMS組織,請使用下列程式碼範例:
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})
使用 Platform SDK,最大讀取大小為32 GB,最長讀取時間為10分鐘。
如果您的讀取時間太長,您可以嘗試使用下列其中一個篩選選項:
IMS組織設定於 client_context
.
要在Python中讀取資料,請使用以下代碼示例:
from platform_sdk.dataset_reader import DatasetReader
dataset_reader = DatasetReader(client_context, "{DATASET_ID}")
df = dataset_reader.limit(100).read()
df.head()
若要讀取R中的資料,請使用下列程式碼範例:
DatasetReader <- psdk$dataset_reader$DatasetReader
dataset_reader <- DatasetReader(client_context, "{DATASET_ID}")
df <- dataset_reader$read()
df
由於不再支援依批次ID篩選,因此若要限定資料讀取範圍,您必須使用 offset
和 limit
.
df = dataset_reader.limit(100).offset(1).read()
df.head
df <- dataset_reader$limit(100L)$offset(1L)$read()
df
日期篩選的粒度現在由時間戳記定義,而非由日期設定。
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
新 Platform SDK支援下列操作:
操作 | 函數 |
---|---|
等於 (= ) |
eq() |
Greater than (> ) |
gt() |
大於或等於 (>= ) |
ge() |
少於 (< ) |
lt() |
Less than or equal to (<= ) |
le() |
和(& ) |
And() |
或 (` | `) |
若要進一步精簡資料的讀取,您也可以依欄名稱篩選。
df = dataset_reader.select(['column-a','column-b']).read()
df <- dataset_reader$select(c('column-a','column-b'))$read()
接收的結果可以按目標資料集的指定列和它們的順序(asc/desc)分別排序。
在以下範例中,資料幀首先按「column-a」的升序排序。 接著,對"column-a"具有相同值的列會以降序依"column-b"排序。
df = dataset_reader.sort([('column-a', 'asc'), ('column-b', 'desc')])
df <- dataset_reader$sort(c(('column-a', 'asc'), ('column-b', 'desc')))$read()
IMS組織設定於 client_context
.
要在Python和R中寫入資料,請使用以下示例之一:
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')
在您設定 platform_sdk
資料載入器,資料會進行準備,然後分割到 train
和 val
資料集。 若要了解資料準備和功能工程,請造訪 資料準備與特徵工程 在使用建立方式的教學課程中 JupyterLab 筆記本。