Utilizzo di itc_utils con il proprio codice

È possibile utilizzare le funzioni fornite da itc_utils per estendere il codice che utilizza la pyarrow libreria. Poiché itc_utils si basa su pyarrow, puoi selezionare funzioni specifiche di itc_utils e integrarle nel tuo pyarrow codice.

Nota:

La itc_utils libreria mette a disposizione funzioni di supporto che puoi utilizzare per rendere i tuoi programmi più leggibili. IBM. può rimuovere questa libreria in qualsiasi momento, qualora lo ritenga necessario, e le funzionalità possono essere modificate senza preavviso.

Le seguenti funzioni possono semplificare lo sviluppo del codice.

  • Funzioni per la creazione di descrittori di volo:

    • get_data_request() : converte un dizionario di tipo ` Python ` contenente risorse con nome in una richiesta conforme al formato richiesto da ` Flight service `
    • get_flight_cmd() : serializza un dizionario di tipo « Python » in una stringa JSON
    • get_flight_descriptor() : crea un oggetto ` pyarrow.flight.FlightDescriptor ` pronto all'uso a partire da un dizionario ` Python `
  • Funzioni per l'istanziazione e l'autenticazione dei client:

  • Funzioni per la lettura dei dati

    • get_flight_info() : restituisce un pyarrow.flight.FlightInfo oggetto per un dizionario di tipo ` Python `
    • read_pandas_and_concat() : legge i dati da tutti gli endpoint e li carica in un unico pandas.DataFrame

get_data_request()

La funzione get_data_request() trasforma un dizionario di tipo ` Python `, connected_data_name contenente connection_name gli elementi `,` o `,`, data_name in un dizionario di tipo ` Python ` che asset_idrappresenta una richiesta di tipo ` Flight service `, contenente gli elementi `,` e `,` o project_idspace_id `,`.

Il risultato può essere utilizzato come argomento per altre funzioni itc_utils della libreria, ad esempio get_flight_descriptor().

Esempi:

  • Con articolo connection_name:

    connection_data_request = {
        'connection_name': """MyConnection""",
        'interaction_properties': {
            'row_limit': 5000,
            'schema_name': '<schema>',
            'table_name': '<table>'
        }
    }
    flightRequest = itcfs.get_data_request(nb_data_request=connection_data_request)
    
  • Con articolo connected_data_name:

    connected_asset_data_request = {
        'connected_data_name': """NameOfConnectedAsset""",
        'interaction_properties': {
            #'row_limit': 5000
        }
    }
    flightRequest = itcfs.get_data_request(nb_data_request=connected_asset_data_request)
    
  • Con articolo data_name:

    CSV_data_request = {
        'data_name': """little.csv""",
        'interaction_properties': {
            #'row_limit': 500,
            'infer_schema': 'true',
            'infer_as_varchar': 'false'
            }
    }
    flightRequest = itcfs.get_data_request(nb_data_request=CSV_data_request)
    

get_flight_cmd()

La funzione get_flight_cmd() trasforma un dizionario di tipo ` Python `, che rappresenta una richiesta ` Flight service `, in una stringa JSON. Questa funzione è utile nei notebook Spark perché Spark Flight Connector richiede un file cmd. Puoi anche utilizzare questa funzione nel tuo pyarrow codice per ottenere un URL valido cmd per Flight service.

Il risultato della get_flight_cmd() funzione può essere utilizzato come dato di input per creare un pyarrow.flight.FlightDescriptor.

È possibile utilizzare questo comando con parametri nb_data_request denominati o data_request.

Se si utilizza nb_data_request, le voci del dizionario connection_name, connected_data_name o data_name vengono risolte in un asset_id, e project_id o space_id prima che il dizionario venga convertito in una stringa JSON.

Se si utilizza data_request, il dizionario viene convertito in una stringa JSON così com'è.

Esempi:

  • Parametro nb_data_request denominato con voce del connection_namedizionario:

    MyConnection_data_request = {
        'connection_name': """MyConnection""",
        'interaction_properties': {
            'row_limit': 5000,
            'schema_name': '<schema>',
            'table_name': '<table>'
        }
    }
    cmd = itcfs.get_flight_cmd(nb_data_request=MyConnection_data_request)
    
  • Parametro con data_ requestnome:

    My_flight_request = {
        'asset_id': '<asset_id>',
        'project_id': '<project_id>',
        'interaction_properties': {
            'row_limit': 5000,
            'schema_name': '<schema>',
            'table_name': '<table>'
        }
    }
    cmd = itcfs.get_flight_cmd(data_request=My_flight_request)
    

get_flight_descriptor()

La funzione get_flight_descriptor() trasforma un dizionario di tipo ` Python `, che rappresenta una richiesta di tipo ` Flight service `, in un pyarrow.flight.FlightDescriptor.

Come descritto in get_flight_cmd, è possibile utilizzare questo comando con i parametri nb_data_request o data_request.

Se si utilizza nb_data_request, le voci del dizionario connection_name, connected_data_name o data_name vengono risolte in un asset_id, e project_id o space_id prima che il dizionario venga trasformato in un descrittore di volo, a condizione che i nomi specificati siano univoci all'interno del progetto o dello spazio di distribuzione.

Se si utilizza data_request, il dizionario viene trasformato in un descrittore di volo così com'è.

Esempio:

MyConnection_data_request = {
    'connection_name': """MyConnection""",
    'interaction_properties': {
        'row_limit': 5000,


       'schema_name': '<schema>',
        'table_name': '<table>'
    }
}

flightDescriptor = itcfs.get_flight_descriptor(nb_data_request=MyConnection_data_request, wslib=None)

get_flight_service_url()

La funzione get_flight_service_url() restituisce l'endpoint configurato di Flight service.

Esempio:

itcfs.get_flight_service_url()

get_flight_client()

La funzione get_flight_client() restituisce un client di volo pronto all'uso che punta all' Flight service URL configurato o fornito. Questo metodo esegue inoltre l'autenticazione su Flight service utilizzando il token utente predefinito o quello fornito.

Esempio:

flightClient = itcfs.get_flight_client()

È possibile utilizzare questo comando con il parametro url per specificare un endpoint alternativo di tipo " Flight service " e con il parametro bearer_token per utilizzare un token bearer esistente.

Esempio:

flightClient = itcfs.get_flight_client(url='<flight_service_url>', bearer_token='<bearer_token>')

TokenClientAuthHandler()

È possibile utilizzare un'istanza della TokenClientAuthHandler classe per autenticarsi con pyarrow.flight.FlightClient un'istanza di. Flight service richiede un token al portatore per l'autenticazione. Per creare un'istanza dell' TokenClientAuthHandler,, è possibile utilizzare un token utente esistente oppure un token bearer.

  • Esempio di comando predefinito TokenClientAuthHandler senza parametri che utilizza il token di autenticazione dall'ambiente:

    authHandler = itcfs.TokenClientAuthHandler()
    
  • Esempio di un TokenClientAuthHandler che utilizza un token creato dal servizio di autenticazione:

    userToken = '<your_user_token>'
    authHandler = itcfs.TokenClientAuthHandler(token=userToken)
    
  • Esempio di un TokenClientAuthHandler che utilizza un token di tipo bearer esistente:

    bearerToken = 'Bearer <your_bearer_token>'
    authHandler = itcfs.TokenClientAuthHandler(bearer_token=bearerToken)
    

get_flight_info()

La funzione get_flight_info()chiama ` Flight service ` per ricevere un pyarrow.flight.FlightInfo oggetto contenente le informazioni necessarie alla lettura dei dati.

get_flight_info() richiede un parametro di posizione, un'istanza di a pyarrow.flight.FlightCliente uno dei parametri nb_data_request denominati o data_request. La differenza tra questi parametri e i dati di input previsti è descritta nelle sezioni relative alle funzioni get_flight_cmd() e get_flight_descriptor().

Esempio:

My_flight_request = {
    'asset_id': '<asset_id>',
    'project_id': '<project_id>',
    'interaction_properties': {
        'row_limit': 5000,
        'schema_name': '<schema>',
        'table_name': '<table>'
    }
}
flightClient = itcfs.get_flight_client()
flightInfo = itcfs.get_flight_info(flightClient, data_request=My_flight_request)

read_pandas_and_concat()

La funzione read_pandas_and_concat()legge i dati da tutti gli endpoint presenti nell'oggetto delle informazioni di volo e unisce le partizioni di dati in un unico pandas.DataFramefile.

read_pandas_and_concat() richiede due parametri di posizione, ovvero un'istanza di a pyarrow.flight.FlightClient e una di pyarrow.flight.FlightInfo object.

Esempio:

df = itcfs.read_pandas_and_concat(flightClient, flightInfo)

Ulteriori informazioni