Verwendung itc_utils von mit Ihrem eigenen Code

Sie können die von bereitgestellten Funktionen itc_utils nutzen, um Code zu erweitern, der die pyarrow Bibliothek verwendet. Da auf itc_utils pyarrowbasiert, kannst du bestimmte Funktionen von auswählen itc_utils und sie mit deinem pyarrow Code kombinieren.

Hinweis:

Die itc_utils Bibliothek bietet Hilfsfunktionen, mit denen Sie Ihre Programme übersichtlicher gestalten können. Diese Bibliothek kann jederzeit von IBM entfernt werden, falls dies als notwendig erachtet wird, und Funktionen können ohne vorherige Ankündigung geändert werden.

Die folgenden Funktionen können die Code-Entwicklung vereinfachen.

  • Funktionen zur Erstellung von Flugbeschreibungen:

    • get_data_request() : Wandelt ein „ Python “-Wörterbuch mit benannten Assets in die von „ Flight service “ benötigte Anfrage um
    • get_flight_cmd() : Serialisiert ein „ Python “-Wörterbuch in eine JSON-Zeichenkette
    • get_flight_descriptor() : Erstellt aus einem „ Python “-Wörterbuch einen einsatzbereiten „ pyarrow.flight.FlightDescriptor “
  • Funktionen zur Client-Instanziierung und -Authentifizierung:

  • Funktionen zum Auslesen von Daten

    • get_flight_info() : Ruft ein pyarrow.flight.FlightInfo Objekt für ein „ Python “-Wörterbuch ab
    • read_pandas_and_concat() : liest Daten von allen Endpunkten und lädt sie in ein einziges pandas.DataFrame

get_data_request()

Die Funktion get_data_request() wandelt ein Wörterbuch vom Typ ` Python ` mit den Elementen connection_name`,` connected_data_name oder `` data_name in ein Wörterbuch vom Typ ` Python ` um, das eine Anfrage vom Typ ` Flight service ` mit den Elementen asset_id`,` und project_id `` oder space_id`` darstellt.

Das Ergebnis kann als Eingabe für andere itc_utils Bibliotheksfunktionen verwendet werden, zum Beispiel get_flight_descriptor().

Beispiele:

  • Mit Artikel 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)
    
  • Mit Artikel 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)
    
  • Mit Artikel 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()

Die Funktion get_flight_cmd() wandelt ein „ Python “-Wörterbuch, das eine „ Flight service “-Anfrage darstellt, in eine JSON-Zeichenkette um. Diese Funktion ist in Spark-Notebooks nützlich, da der Spark Flight Connector eine cmd. Sie können diese Funktion auch in Ihrem eigenen pyarrow Code verwenden, um eine gültige Adresse cmd für Flight service zu erhalten.

Das Ergebnis der get_flight_cmd() Funktion kann als Eingabe für die Erstellung eines dienen pyarrow.flight.FlightDescriptor.

Sie können diesen Befehl mit benannten Parametern nb_data_request oder verwenden data_request.

Wenn Sie verwenden nb_data_request, werden die data_name Wörterbucheinträge connection_name, connected_data_name oder zu einem asset_idund project_id oder space_id aufgelöst, bevor das Wörterbuch in eine JSON-Zeichenkette umgewandelt wird.

Wenn Sie verwenden data_request, wird das Wörterbuch unverändert in eine JSON-Zeichenkette umgewandelt.

Beispiele:

  • Benannter Parameter nb_data_request mit einem Eintrag im connection_nameWörterbuch:

    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)
    
  • Benannter Parameter data_ request:

    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()

Die Funktion get_flight_descriptor() wandelt ein „ Python “-Wörterbuch, das eine „ Flight service “-Anfrage darstellt, in ein pyarrow.flight.FlightDescriptor… um.

Wie unter beschrieben get_flight_cmd, können Sie diesen Befehl mit den benannten Parametern nb_data_request oder verwenden data_request.

Wenn Sie verwenden nb_data_request, werden die data_name Wörterbucheinträge connection_name, connected_data_name oder zu einem asset_idund project_id oder space_id aufgelöst, bevor das Wörterbuch in einen Flugdeskriptor umgewandelt wird, vorausgesetzt, die angegebenen Namen sind im Projekt- oder Bereitstellungsbereich eindeutig.

Wenn Sie verwenden data_request, wird das Wörterbuch unverändert in einen Flugdeskriptor umgewandelt.

Beispiel:

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()

Die Funktion get_flight_service_url() gibt den konfigurierten Endpunkt von Flight service zurück.

Beispiel:

itcfs.get_flight_service_url()

get_flight_client()

Die Funktion get_flight_client() gibt einen einsatzbereiten Flug-Client zurück, der auf die konfigurierte oder bereitgestellte URL Flight service URL verweist. Diese Methode führt die Authentifizierung bei Flight service ebenfalls durch, wobei entweder das Standard-Benutzertoken oder ein bereitgestelltes Benutzertoken verwendet wird.

Beispiel:

flightClient = itcfs.get_flight_client()

Sie können diesen Befehl mit dem benannten Parameter url verwenden, um einen alternativen Endpunkt für „ Flight service “ anzugeben, und mit dem benannten Parameter, um ein vorhandenes bearer_token Bearer-Token zu verwenden.

Beispiel:

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

TokenClientAuthHandler()

Sie können eine Instanz der TokenClientAuthHandler Klasse verwenden, um sich bei einer pyarrow.flight.FlightClient Instanz zu authentifizieren. Flight service erwartet einen Bearer-Token zur Authentifizierung. Um eine Instanz des „ TokenClientAuthHandler, “ zu erstellen, können Sie ein vorhandenes Benutzer-Token oder ein Bearer-Token verwenden.

  • Beispiel für einen Aufruf TokenClientAuthHandler ohne Parameter, bei dem das Authentifizierungstoken aus der Umgebung verwendet wird:

    authHandler = itcfs.TokenClientAuthHandler()
    
  • Beispiel für eine TokenClientAuthHandler Anwendung, die ein vom Authentifizierungsdienst erstelltes Token verwendet:

    userToken = '<your_user_token>'
    authHandler = itcfs.TokenClientAuthHandler(token=userToken)
    
  • Beispiel für ein, TokenClientAuthHandler das ein vorhandenes Träger-Token verwendet:

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

get_flight_info()

Die Funktion get_flight_info()ruft ` Flight service ` auf, um ein pyarrow.flight.FlightInfo Objekt zu erhalten, das die zum Lesen der Daten erforderlichen Informationen enthält.

get_flight_info() erwartet einen Positionsparameter, eine Instanz von a pyarrow.flight.FlightClientsowie einen der benannten Parameter nb_data_request oder data_request. Der Unterschied zwischen diesen Parametern und den erwarteten Eingabewerten wird in den Abschnitten zu get_flight_cmd() und get_flight_descriptor() beschrieben.

Beispiel:

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()

Die Funktion read_pandas_and_concat()liest Daten von allen Endpunkten im Fluginformationsobjekt und fügt die Datenpartitionen zu einer einzigen zusammen pandas.DataFrame.

read_pandas_and_concat() erwartet zwei Positionsparameter, nämlich eine Instanz von a pyarrow.flight.FlightClient und eine von pyarrow.flight.FlightInfo object.

Beispiel:

df = itcfs.read_pandas_and_concat(flightClient, flightInfo)

Weitere Informationen