Accesso ai dati con Python in Data Science Workspace
Il documento seguente contiene esempi su come accesso dati usando Python per l'uso in Data Science Area di lavoro. Per informazioni sull'accesso ai dati utilizzando i notebook JupyterLab, visita i dati accesso🔗 la documentazione dei notebook JupyterLab.
Lettura di un dataset
Dopo aver impostato le variabili di ambiente e completato l'installazione, il set di dati può ora essere letto nel frame di dati di pandas.
import pandas as pd
from .utils import get_client_context
from platform_sdk.dataset_reader import DatasetReader
def load(config_properties):
client_context = get_client_context(config_properties)
dataset_reader = DatasetReader(client_context, config_properties['DATASET_ID'])
df = dataset_reader.read()
SELEZIONA colonne dal set di dati
df = dataset_reader.select(['column-a','column-b']).read()
Ottenere informazioni sul partizionamento:
client_context = get_client_context(config_properties)
dataset = Dataset(client_context).get_by_id({DATASET_ID})
partitions = dataset.get_partitions_info()
Clausola DISTINCT
La clausola DISTINCT consente di recuperare tutti i valori distinti a livello di riga/colonna, rimuovendo tutti i valori duplicati dalla risposta.
Di seguito è riportato un esempio di utilizzo della funzione distinct()
:
df = dataset_reader.select(['column-a']).distinct().read()
Clausola WHERE
È possibile usare determinati operatori in Python per filtrare il set di dati.
eq() = '='
gt() = '>'
ge() = '>='
lt() = '<'
le() = '<='
And = and operator
Or = or operator
Di seguito è riportato un esempio dell'utilizzo di queste funzioni di filtro:
df = dataset_reader.where(experience_ds['timestamp'].gt(87879779797).And(experience_ds['timestamp'].lt(87879779797)).Or(experience_ds['a'].eq(123)))
Clausola ORDINA BY
La clausola ORDER BY consente di ordinare i risultati ricevuti in base a una colonna specifica in un ordine specifico (crescente o decrescente). Questa operazione viene eseguita utilizzando la sort()
funzione.
Di seguito è riportato un esempio di utilizzo della funzione sort()
:
df = dataset_reader.sort([('column_1', 'asc'), ('column_2', 'desc')])
clausola LIMIT
La clausola LIMIT consente di limitare il numero di record ricevuti dal set di dati.
Di seguito è riportato un esempio di utilizzo della funzione limit()
:
df = dataset_reader.limit(100).read()
clausola OFFSET
La clausola OFFSET consente di saltare le righe, dall'inizio, per iniziare a restituire le righe da un punto successivo. In combinazione con LIMIT, può essere utilizzato per iterare le righe in blocchi.
Di seguito è riportato un esempio dell'utilizzo offset()
della funzione:
df = dataset_reader.offset(100).read()
Scrittura di un dataset
Per scrivere in un dataset, è necessario fornire il frame di dati pandas al dataset.
Scrittura del frame di dati dei panda
client_context = get_client_context(config_properties)
# To fetch existing dataset
dataset = Dataset(client_context).get_by_id({DATASET_ID})
dataset_writer = DatasetWriter(client_context, dataset)
write_tracker = dataset_writer.write(<your_dataFrame>, file_format='json')
Directory dello spazio utente (Checkpointing)
Per i processi con tempi di esecuzione più lunghi, potrebbe essere necessario memorizzare i passaggi intermedi. In casi come questo, puoi leggere e scrivere in uno spazio utente.
Scrivi nello spazio utenti
client_context = get_client_context(config_properties)
user_helper = UserSpaceHelper(client_context)
user_helper.write(data_frame=<data_frame>, path=<path_to_directory>, ref_dataset_id=<ref_dataset_id>)
Leggi dallo spazio utente
client_context = get_client_context(config_properties)
user_helper = UserSpaceHelper(client_context)
my_df = user_helper.read(path=<path_to_directory>, ref_dataset_id=<ref_dataset_id>)
Passaggi successivi
Adobe Experience Platform Data Science Area di lavoro fornisce un esempio di ricetta in cui vengono utilizzati gli esempi di codice precedenti per leggere e scrivere dati. Per ulteriori informazioni su come usare Python per accedere ai dati, consulta l'archivio GitHub di Data Science Area di lavoro Python.