Databricks SQL Csatlakozás or for Python

A PythonHoz készült Databricks SQL Csatlakozás or egy Python-kódtár, amely lehetővé teszi, hogy Python-kód használatával SQL-parancsokat futtasson Azure Databricks-fürtökön és Databricks SQL-tárolókon. A Pythonhoz készült Databricks SQL Csatlakozás or egyszerűbben beállítható és használható, mint a hasonló Python-kódtárak, például a pyodbc. Ez a kódtár a PEP 249 – Python Database API Specification 2.0-s verziót követi.

Feljegyzés

A Pythonhoz készült Databricks SQL Csatlakozás or tartalmaz egy SQLAlchemy-dialektust is az Azure Databrickshez. Lásd: Az SQLAlchemy használata az Azure Databricksben.

Követelmények

  • Python >=3.8 és <=3.11 rendszerű fejlesztőgép.
  • A Databricks azt javasolja, hogy pythonos virtuális környezeteket használjon, például a Python részét képező venv által biztosítottakat. A virtuális környezetek segítségével biztosítható, hogy a Python és a Databricks SQL Csatlakozás or for Python megfelelő verzióit használja együtt. A virtuális környezetek beállítása és használata a jelen cikk hatókörén kívül esik. További információ: Virtuális környezetek létrehozása.
  • Meglévő fürt vagy SQL Warehouse.

Első lépések

Hitelesítés

A Pythonhoz készült Databricks SQL Csatlakozás or a következő Azure Databricks-hitelesítési típusokat támogatja:

A Pythonhoz készült Databricks SQL Csatlakozás or még nem támogatja a következő Azure Databricks-hitelesítési típusokat:

Databricks személyes hozzáférési jogkivonat hitelesítése

Ha a Databricks SQL Csatlakozás or for Pythont azure Databricks személyes hozzáférési jogkivonat-hitelesítéssel szeretné használni, először létre kell hoznia egy Azure Databricks személyes hozzáférési jogkivonatot az alábbiak szerint:

  1. Az Azure Databricks-munkaterületen kattintson az Azure Databricks-felhasználónevére a felső sávon, majd válassza a Felhasználó Gépház lehetőséget a legördülő menüből.
  2. Kattintson a Fejlesztőeszközök elemre.
  3. Az Access-jogkivonatok mellett kattintson a Kezelés gombra.
  4. Kattintson az Új jogkivonat létrehozása elemre.
  5. (Nem kötelező) Írjon be egy megjegyzést, amely segít azonosítani a jogkivonatot a jövőben, és módosíthatja a jogkivonat alapértelmezett 90 napos élettartamát. Élettartam nélküli (nem ajánlott) jogkivonat létrehozásához hagyja üresen az Élettartam (nap) mezőt (üres).
  6. Kattintson a Létrehozás lehetőségre.
  7. Másolja a megjelenített jogkivonatot egy biztonságos helyre, majd kattintson a Kész gombra.

Feljegyzés

Ügyeljen arra, hogy a másolt jogkivonatot biztonságos helyre mentse. Ne ossza meg másokkal a másolt jogkivonatot. Ha elveszíti a másolt jogkivonatot, nem tudja pontosan ugyanazt a jogkivonatot újragenerálni. Ehelyett meg kell ismételnie ezt az eljárást egy új jogkivonat létrehozásához. Ha elveszíti a másolt jogkivonatot, vagy úgy véli, hogy a jogkivonat sérült, a Databricks határozottan javasolja, hogy azonnal törölje a jogkivonatot a munkaterületről az Access-jogkivonatok lapon a jogkivonat melletti kuka (Visszavonás) ikonra kattintva.

Ha nem tud jogkivonatokat létrehozni vagy használni a munkaterületen, ennek az lehet az oka, hogy a munkaterület rendszergazdája letiltotta a jogkivonatokat, vagy nem adott engedélyt a jogkivonatok létrehozására vagy használatára. Tekintse meg a munkaterület rendszergazdáját vagy a következőket:

A Databricks SQL Csatlakozás or pythonos hitelesítéséhez használja az alábbi kódrészletet. Ez a kódrészlet feltételezi, hogy a következő környezeti változókat állította be:

  • DATABRICKS_SERVER_HOSTNAMEelemet a fürt vagy az SQL Warehouse kiszolgálói állomásnév értékére állítja.
  • DATABRICKS_HTTP_PATHelemet, állítsa be a HTTP-elérési út értékét a fürthöz vagy az SQL Warehouse-hoz.
  • DATABRICKS_TOKENbeállításnál állítsa be az Azure Databricks személyes hozzáférési jogkivonatát.

A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját.

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:
# ...

OAuth machine-to-machine (M2M) hitelesítés

A Databricks SQL Csatlakozás or a Python 2.7.0-s és újabb verziói támogatják az OAuth machine-to-machine (M2M) hitelesítést. A Python 0.18.0-s vagy újabb verziójához készült Databricks SDK-t is telepítenie kell (például futtatással vagy python -m pip install databricks-sdk).pip install databricks-sdk

A Databricks SQL Csatlakozás or for Python OAuth M2M-hitelesítéssel való használatához a következőket kell tennie:

  1. Hozzon létre egy Azure Databricks-szolgáltatásnevet az Azure Databricks-munkaterületen, és hozzon létre egy OAuth-titkos kulcsot a szolgáltatásnévhez.

    A szolgáltatásnév és az OAuth-titkos kód létrehozásához lásd : OAuth machine-to-machine (M2M) hitelesítés. Jegyezze fel a szolgáltatásnév UUID - vagy alkalmazásazonosító-értékét , valamint a szolgáltatásnév OAuth-titkos kódjának titkos értékét.

  2. Adjon hozzáférést a szolgáltatásnévnek a fürthöz vagy a raktárhoz.

    Ha hozzáférést szeretne adni a szolgáltatásnévnek a fürthöz vagy a raktárhoz, olvassa el a számítási engedélyeket vagy az SQL-raktár kezelését.

A Databricks SQL Csatlakozás or pythonos hitelesítéséhez használja az alábbi kódrészletet. Ez a kódrészlet feltételezi, hogy a következő környezeti változókat állította be:

  • DATABRICKS_SERVER_HOSTNAME elemet a fürt vagy az SQL Warehouse kiszolgálói állomásnév értékére állítja.
  • DATABRICKS_HTTP_PATHelemet, állítsa be a HTTP-elérési út értékét a fürthöz vagy az SQL Warehouse-hoz.
  • DATABRICKS_CLIENT_ID, állítsa be a szolgáltatásnév UUID - vagy alkalmazásazonosító-értékét .
  • DATABRICKS_CLIENT_SECRET, állítsa be a szolgáltatásnév OAuth-titkos kódjának titkos értékét.

A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját.

from databricks.sdk.core import Config, oauth_service_principal
from databricks import sql
import os

server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME")

def credential_provider():
  config = Config(
    host          = f"https://{server_hostname}",
    client_id     = os.getenv("DATABRICKS_CLIENT_ID"),
    client_secret = os.getenv("DATABRICKS_CLIENT_SECRET"))
  return oauth_service_principal(config)

with sql.connect(server_hostname      = server_hostname,
                 http_path            = os.getenv("DATABRICKS_HTTP_PATH"),
                 credentials_provider = credential_provider) as connection:
# ...

Microsoft Entra ID (korábbi nevén Azure Active Directory) jogkivonat-hitelesítés

Ha a Databricks SQL Csatlakozás or for Pythont Microsoft Entra ID (korábbi nevén Azure Active Directory) jogkivonat-hitelesítéssel szeretné használni, meg kell adnia a Databricks SQL Csatlakozás or for Pythont a Microsoft Entra ID-jogkivonattal. Microsoft Entra ID hozzáférési jogkivonat létrehozásához tegye a következőket:

A Microsoft Entra ID-jogkivonatok alapértelmezett élettartama körülbelül 1 óra. Új Microsoft Entra ID-jogkivonat létrehozásához ismételje meg ezt a folyamatot.

A Databricks SQL Csatlakozás or pythonos hitelesítéséhez használja az alábbi kódrészletet. Ez a kódrészlet feltételezi, hogy a következő környezeti változókat állította be:

  • Állítsa be DATABRICKS_SERVER_HOSTNAME a fürt vagy az SQL Warehouse kiszolgálói állomásnév értékét.
  • Állítsa be DATABRICKS_HTTP_PATH a fürt vagy az SQL Warehouse HTTP-elérési útvonalának értékét.
  • Állítsa be DATABRICKS_TOKEN a Microsoft Entra ID tokent.

A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját.

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:
# ...

OAuth user-to-machine (U2M) hitelesítés

A Databricks SQL Csatlakozás or a Python 2.7.0-s és újabb verziói támogatják az OAuth felhasználó–gép (U2M) hitelesítést. A Python 0.19.0-s vagy újabb verziójához készült Databricks SDK-t is telepítenie kell (például futtatással vagy python -m pip install databricks-sdk).pip install databricks-sdk

A Databricks SQL Csatlakozás or for Python OAuth U2M-hitelesítéssel való hitelesítéséhez használja az alábbi kódrészletet. Az OAuth U2M-hitelesítés valós idejű emberi bejelentkezést és hozzájárulást használ a cél Azure Databricks-felhasználói fiók hitelesítéséhez. Ez a kódrészlet feltételezi, hogy a következő környezeti változókat állította be:

  • Állítsa be DATABRICKS_SERVER_HOSTNAME a fürt vagy az SQL Warehouse kiszolgálói állomásnév értékét.
  • Állítsa be DATABRICKS_HTTP_PATH a fürt vagy az SQL Warehouse HTTP-elérési útvonalának értékét.

A környezeti változók beállításához tekintse meg az operációs rendszer dokumentációját.

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 auth_type       = "databricks-oauth") as connection:
# ...

Példák

Az alábbi példakód bemutatja, hogyan használható a Python Databricks SQL Csatlakozás or az adatok lekérdezésére és beszúrására, a metaadatok lekérdezésére, a kurzorok és kapcsolatok kezelésére, valamint a naplózás konfigurálására.

Feljegyzés

Az alábbi példakód bemutatja, hogyan használható az Azure Databricks személyes hozzáférési jogkivonata a hitelesítéshez. Ha ehelyett más elérhető Azure Databricks-hitelesítési típusokat szeretne használni, tekintse meg a Hitelesítés című témakört.

Ezek a példakódok lekérik a környezeti http_pathváltozókserver_hostname, valamint access_token a kapcsolati változók értékeit:

  • DATABRICKS_SERVER_HOSTNAME, amely a kiszolgáló állomásnevének értékét jelöli a követelményekből.
  • DATABRICKS_HTTP_PATH, amely a követelmények HTTP-elérési útját jelöli.
  • DATABRICKS_TOKEN, amely a hozzáférési jogkivonatot jelöli a követelményekből.

Ezeket a kapcsolatváltozó-értékeket más módszerekkel is beolvashatja. A környezeti változók használata csak egy megközelítés a sok közül.

Adatok lekérdezése

Az alábbi példakód bemutatja, hogyan hívhatja meg a Python Databricks SQL Csatlakozás ort egy alapszintű SQL-parancs fürtben vagy SQL-raktárban való futtatásához. Ez a parancs a katalógus sémájában lévő samples táblázat első két sorát tripsnyctaxi adja vissza.

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:

  with connection.cursor() as cursor:
    cursor.execute("SELECT * FROM samples.nyctaxi.trips LIMIT 2")
    result = cursor.fetchall()

    for row in result:
      print(row)

Adat beszúrása

Az alábbi példa bemutatja, hogyan szúrhat be kis mennyiségű adatot (több ezer sort):

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:

  with connection.cursor() as cursor:
    cursor.execute("CREATE TABLE IF NOT EXISTS squares (x int, x_squared int)")

    squares = [(i, i * i) for i in range(100)]
    values = ",".join([f"({x}, {y})" for (x, y) in squares])

    cursor.execute(f"INSERT INTO squares VALUES {values}")

    cursor.execute("SELECT * FROM squares LIMIT 10")

    result = cursor.fetchall()

    for row in result:
      print(row)

Nagy mennyiségű adat esetén először fel kell töltenie az adatokat a felhőbeli tárolóba, majd végre kell hajtania a COPY INTO parancsot.

Metaadatok lekérdezése

Vannak dedikált metódusok a metaadatok lekérésére. Az alábbi példa egy mintatábla oszlopainak metaadatait kéri le:

from databricks import sql
import os

with sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                 http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                 access_token    = os.getenv("DATABRICKS_TOKEN")) as connection:

  with connection.cursor() as cursor:
    cursor.columns(schema_name="default", table_name="squares")
    print(cursor.fetchall())

Kurzorok és kapcsolatok kezelése

Ajánlott bezárni a már nem használt kapcsolatokat és kurzorokat. Ez erőforrásokat szabadít fel az Azure Databricks-fürtökön és a Databricks SQL-tárolókon.

Az erőforrások kezeléséhez használhat környezetkezelőt (az with előző példákban használt szintaxist), vagy explicit módon meghívhatja a következőt close:

from databricks import sql
import os

connection = sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                         http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                         access_token    = os.getenv("DATABRICKS_TOKEN"))

cursor = connection.cursor()

cursor.execute("SELECT * from range(10)")
print(cursor.fetchall())

cursor.close()
connection.close()

Naplózás konfigurálása

A Databricks SQL Csatlakozás or a Python szabványos naplózási modulját használja. A naplózási szintet az alábbiakhoz hasonlóan konfigurálhatja:

from databricks import sql
import os, logging

logging.getLogger("databricks.sql").setLevel(logging.DEBUG)
logging.basicConfig(filename = "results.log",
                    level    = logging.DEBUG)

connection = sql.connect(server_hostname = os.getenv("DATABRICKS_SERVER_HOSTNAME"),
                         http_path       = os.getenv("DATABRICKS_HTTP_PATH"),
                         access_token    = os.getenv("DATABRICKS_TOKEN"))

cursor = connection.cursor()

cursor.execute("SELECT * from range(10)")

result = cursor.fetchall()

for row in result:
   logging.debug(row)

cursor.close()
connection.close()

API-referencia

Csomag

databricks-sql-connector

Használat: pip install databricks-sql-connector

Lásd még a Databricks-sql-connectort a Python-csomagindexben (PyPI).

Modul

databricks.sql

Használat: from databricks import sql

Metódusok

connect Módszer

Kapcsolatot hoz létre egy adatbázissal.

Egy Csatlakozás ion objektumot ad vissza.

Paraméterek
server_hostname

Típus: str

A fürt vagy az SQL Warehouse kiszolgálói állomásneve. A kiszolgáló állomásnevének lekéréséhez tekintse meg a cikk korábbi utasításait.

Ez a paraméter kötelező.

Példa: adb-1234567890123456.7.azuredatabricks.net
http_path

Típus: str

A fürt vagy az SQL Warehouse HTTP-elérési útja. A HTTP-elérési út lekéréséhez tekintse meg a cikk korábbi utasításait.

Ez a paraméter kötelező.

Példa:
sql/protocolv1/o/1234567890123456/1234-567890-test123 fürt esetében.
/sql/1.0/warehouses/a1b234c567d8e9fa SQL-raktárhoz.
access_token, auth_type

Típus: str

Információk az Azure Databricks hitelesítési beállításairól. További részletekért lásd: Hitelesítés.
session_configuration

Típus: dict[str, Any]

A Spark-munkamenet konfigurációs paramétereinek szótára. A konfiguráció beállítása egyenértékű az SET key=val SQL-parancs használatával. Futtassa az SQL-parancsot SET -v az elérhető konfigurációk teljes listájának lekéréséhez.

Alapértelmezett érték: None.

Ez a paraméter nem kötelező.

Példa: {"spark.sql.variable.substitute": True}
http_headers

Típus: List[Tuple[str, str]]]

További (kulcs, érték) párok, hogy beállítsa a HTTP-fejlécek minden RPC-kérést az ügyfél által. A tipikus használat nem állít be további HTTP-fejléceket. Alapértelmezett érték: None.

Ez a paraméter nem kötelező.

A 2.0-s verzió óta
Katalógus

Típus: str

A kapcsolathoz használni kívánt kezdeti katalógus. Alapértelmezés szerint None (ebben az esetben általában az alapértelmezett katalógus hive_metastorelesz használva).

Ez a paraméter nem kötelező.

A 2.0-s verzió óta
Séma

Típus: str

A kapcsolathoz használandó kezdeti séma. Alapértelmezett érték None (ebben az esetben az alapértelmezett séma default lesz használva).

Ez a paraméter nem kötelező.

A 2.0-s verzió óta
use_cloud_fetch

Típus: bool

True lekéréses kérések közvetlenül a felhőobjektum-tárolóba való elküldéséhez adattömbök letöltéséhez. False (alapértelmezett) a lekéréses kérelmek közvetlenül az Azure Databricksnek való elküldéséhez.

Ha use_cloud_fetch be van állítva, True de a hálózati hozzáférés le van tiltva, akkor a beolvasási kérelmek sikertelenek lesznek.

A 2.8-as verzió óta

Osztályok

Connection Osztály

Adatbázis-kapcsolatot jelöl.

Metódusok
close Módszer

Bezárja az adatbázishoz való kapcsolatot, és felszabadítja az összes társított erőforrást a kiszolgálón. A kapcsolatra irányuló további hívások a következőt Errorfogják eredményezni: .

Nincsenek paraméterek.

Nincs visszatérési érték.

cursor Módszer

Olyan mechanizmust ad vissza, amely lehetővé teszi az adatbázis rekordjainak bejárását.

Nincsenek paraméterek.

Egy kurzorobjektumot ad vissza.

Cursor Osztály

Attribútumok
arraysize attribútum

A fetchmany metódussal használva megadja a belső pufferméretet, amely azt is jelzi, hogy egyszerre hány sort kell ténylegesen lekérni a kiszolgálóról. Az alapértelmezett érték 10000. Szűk eredmények (olyan eredmények, amelyekben az egyes sorok nem tartalmaznak sok adatot), a jobb teljesítmény érdekében növelnie kell ezt az értéket.

Olvasási-írási hozzáférés.

description attribútum

Objektumokat tartalmazó Pythont listtuple tartalmaz. Mindegyik tuple objektum 7 értéket tartalmaz, és mindegyik tuple objektum első 2 eleme az egyetlen eredményoszlopot leíró információkat tartalmazza az alábbiak szerint:

  • name: Az oszlop neve.
  • type_code: Az oszlop típusát képviselő sztring. Egy egész szám oszlop például a következő típusú kóddal rendelkezik int: .

A 7 elemből tuple álló objektumok fennmaradó 5 eleme nincs implementálva, és az értékek nincsenek definiálva. Ezeket általában 4 None értékként, majd egyetlen True értékként adja vissza.

Írásvédett hozzáférés.

Metódusok
cancel Módszer

Megszakítja a kurzor által indított adatbázis-lekérdezések vagy parancsok futtatását. A társított erőforrások kiszolgálón való felszabadításához a metódus meghívása után hívja meg a szoros metódust cancel .

Nincsenek paraméterek.

Nincs visszatérési érték.

close Módszer

Bezárja a kurzort, és felszabadítja a társított erőforrásokat a kiszolgálón. Egy már bezárt kurzor bezárása hibát jelezhet.

Nincsenek paraméterek.

Nincs visszatérési érték.

execute Módszer

Előkészít és futtat egy adatbázis-lekérdezést vagy -parancsot.

Nincs visszatérési érték.

Paraméterek
Művelet

Típus: str

A előkészítendő és futtatandó lekérdezés vagy parancs.

Ez a paraméter kötelező.

Példa paraméter parameters nélkül:


cursor.execute(
'SELECT * FROM samples.nyctaxi.trips WHERE pickup_zip="10019" LIMIT 2'
)

Példa a paraméterrel parameters :


cursor.execute(
'SELECT * FROM samples.nyctaxi.trips WHERE zip=%(pickup_zip)s LIMIT 2',
{ 'pickup_zip': '10019' }
)
paraméterek

Típus: szótár

A paraméterrel használandó paraméterek sorozata operation .

Ez a paraméter nem kötelező. Az alapértelmezett érték None.
executemany Módszer

Előkészít és futtat egy adatbázis-lekérdezést vagy parancsot az seq_of_parameters argumentum összes paraméterütemezésével. A rendszer csak a végső eredményhalmazt őrzi meg.

Nincs visszatérési érték.

Paraméterek
Művelet

Típus: str

A előkészítendő és futtatandó lekérdezés vagy parancs.

Ez a paraméter kötelező.
seq_of_parameters

Típus: listdict

Számos paraméterérték-készlet sorozata, amelyet a
operation Paraméter.

Ez a paraméter kötelező.
catalogs Módszer

Metaadat-lekérdezés végrehajtása a katalógusokról. A tényleges eredményeket ezután le kell kérni a következővel fetchmany : vagy fetchall. Az eredményhalmaz fontos mezői a következők:

  • Mező neve: TABLE_CAT. Típus: str. A katalógus neve.

Nincsenek paraméterek.

Nincs visszatérési érték.

Az 1.0-s verzió óta

schemas Módszer

Metaadat-lekérdezés végrehajtása a sémákról. A tényleges eredményeket ezután le kell kérni a következővel fetchmany : vagy fetchall. Az eredményhalmaz fontos mezői a következők:

  • Mező neve: TABLE_SCHEM. Típus: str. A séma neve.
  • Mező neve: TABLE_CATALOG. Típus: str. A katalógus, amelyhez a séma tartozik.

Nincs visszatérési érték.

Az 1.0-s verzió óta

Paraméterek
catalog_name

Típus: str

Katalógusnév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
schema_name

Típus: str

Sémanév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
tables Módszer

Metaadat-lekérdezés végrehajtása táblákról és nézetekről. A tényleges eredményeket ezután le kell kérni a következővel fetchmany : vagy fetchall. Az eredményhalmaz fontos mezői a következők:

  • Mező neve: TABLE_CAT. Típus: str. A katalógus, amelyhez a tábla tartozik.
  • Mező neve: TABLE_SCHEM. Típus: str. Az a séma, amelyhez a tábla tartozik.
  • Mező neve: TABLE_NAME. Típus: str. A tábla neve.
  • Mező neve: TABLE_TYPE. Típus: str. A reláció típusa, például VIEW vagy TABLE (a Databricks Runtime 10.4 LTS és újabb verziókra, valamint a Databricks SQL-re vonatkozik; a Databricks Runtime korábbi verziói üres sztringet adnak vissza).

Nincs visszatérési érték.

Az 1.0-s verzió óta

Paraméterek
catalog_name

Típus: str

Katalógusnév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
schema_name

Típus: str

Sémanév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
table_name

Típus: str

Egy táblanév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
table_types

Típus: List[str]

Az egyező táblázattípusok listája, példáulTABLE.VIEW

Ez a paraméter nem kötelező.
columns Módszer

Metaadat-lekérdezés végrehajtása az oszlopokról. A tényleges eredményeket ezután le kell kérni a következővel fetchmany : vagy fetchall. Az eredményhalmaz fontos mezői a következők:

  • Mező neve: TABLE_CAT. Típus: str. Az a katalógus, amelyhez az oszlop tartozik.
  • Mező neve: TABLE_SCHEM. Típus: str. Az a séma, amelyhez az oszlop tartozik.
  • Mező neve: TABLE_NAME. Típus: str. Annak a táblának a neve, amelyhez az oszlop tartozik.
  • Mező neve: COLUMN_NAME. Típus: str. Az oszlop neve.

Nincs visszatérési érték.

Az 1.0-s verzió óta

Paraméterek
catalog_name

Típus: str

Katalógusnév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
schema_name

Típus: str

Sémanév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
table_name

Típus: str

Egy táblanév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
column_name

Típus: str

Egy oszlopnév, amelyről információt szeretne lekérni. A % karaktert helyettesítő karakterként értelmezi a rendszer.

Ez a paraméter nem kötelező.
fetchall Módszer

Lekéri egy lekérdezés összes (vagy az összes fennmaradó) sorát.

Nincsenek paraméterek.

A lekérdezés összes (vagy az összes fennmaradó) sorát az objektumok Pythonjaként listRow adja vissza.

Error Ha a végrehajtási metódus előző hívása nem ad vissza adatokat, vagy még nem execute történt hívás.

fetchmany Módszer

Lekéri a lekérdezés következő sorait.

A lekérdezés következő sorainak legfeljebb size (vagy ha size nincs megadva tömbméret attribútum) értékét adja vissza objektum Python-objektumként listRow. Ha a beolvasandó soroknál size kevesebb sor van hátra, a rendszer az összes többi sort visszaadja.

Error Ha a végrehajtási metódus előző hívása nem ad vissza adatokat, vagy még nem execute történt hívás.

Paraméterek
Méret

Típus: int

A következő lekérendő sorok száma.

Ez a paraméter nem kötelező. Ha nincs megadva, a rendszer az arraysize attribútum értékét használja.

Példa: cursor.fetchmany(10)
fetchone Módszer

Lekéri az adathalmaz következő sorát.

Nincsenek paraméterek.

Az adathalmaz következő sorát adja vissza egyetlen sorozatként Python-objektumként tuple , vagy visszaadja None , ha nincs több elérhető adat.

Error Ha a végrehajtási metódus előző hívása nem ad vissza adatokat, vagy még nem execute történt hívás.

fetchall_arrow Módszer

PyArrow-objektumként Table lekéri egy lekérdezés összes (vagy az összes fennmaradó) sorát. A nagyon nagy mennyiségű adatot visszaadó lekérdezéseket inkább a memóriahasználat csökkentésére kell használni fetchmany_arrow .

Nincsenek paraméterek.

A lekérdezés összes (vagy az összes fennmaradó) sorát PyArrow-táblaként adja vissza.

Error Ha a végrehajtási metódus előző hívása nem ad vissza adatokat, vagy még nem execute történt hívás.

A 2.0-s verzió óta

fetchmany_arrow Módszer

Lekéri a lekérdezés következő sorait PyArrow-objektumként Table .

size A lekérdezés következő sorainak argumentumát (vagy ha size nincs megadva a tömbméret attribútumot) adja vissza Python PyArrow-objektumkéntTable.

Error Ha a végrehajtási metódus előző hívása nem ad vissza adatokat, vagy még nem execute történt hívás.

A 2.0-s verzió óta

Paraméterek
Méret

Típus: int

A következő lekérendő sorok száma.

Ez a paraméter nem kötelező. Ha nincs megadva, a rendszer az arraysize attribútum értékét használja.

Példa: cursor.fetchmany_arrow(10)

Row Osztály

A sorosztály egy rekordszerű adatstruktúra, amely egy egyéni eredménysort jelöl. Ha a sor tartalmaz egy oszlopot a névvel "my_column", akkor a "my_column" mező row a következőn keresztül row.my_columnérhető el: Numerikus indexekkel is elérheti például row[0]a mezőket. Ha az oszlopnév nem engedélyezett attribútummetódus-névként (például egy számjegygel kezdődik), akkor a mezőt a következőképpen row["1_my_column"]érheti el.

Az 1.0-s verzió óta

Metódusok
asDict Módszer

A sor szótári ábrázolását adja vissza, amelyet mezőnevek indexelnek. Ha ismétlődő mezőnevek vannak, az ismétlődő mezők egyike (de csak egy) lesz visszaadva a szótárban. A visszaadott duplikált mező nincs meghatározva.

Nincsenek paraméterek.

Mezőket dict ad vissza.

Típuskonverziók

Az alábbi táblázat az Apache Spark SQL-adattípusokat a Python-adattípus megfelelőire képezi le.

Apache Spark SQL-adattípus Python-adattípus
array numpy.ndarray
bigint int
binary bytearray
boolean bool
date datetime.date
decimal decimal.Decimal
double float
int int
map str
null NoneType
smallint int
string str
struct str
timestamp datetime.datetime
tinyint int

Hibaelhárítás

tokenAuthWrapperInvalidAccessToken: Invalid access token Üzenetet

Probléma: A kód futtatásakor a következőhöz hasonló üzenet jelenik meg Error during request to server: tokenAuthWrapperInvalidAccessToken: Invalid access token.

Lehetséges ok: Az átadott access_token érték nem érvényes Azure Databricks személyes hozzáférési jogkivonat.

Javasolt javítás: Ellenőrizze, hogy az átadott access_token érték helyes-e, majd próbálkozzon újra.

gaierror(8, 'nodename nor servname provided, or not known') Üzenetet

Probléma: A kód futtatásakor a következőhöz hasonló üzenet jelenik meg Error during request to server: gaierror(8, 'nodename nor servname provided, or not known').

Lehetséges ok: Az átadott server_hostname érték nem a megfelelő állomásnév.

Javasolt javítás: Ellenőrizze, hogy az átadott server_hostname érték helyes-e, majd próbálkozzon újra.

A kiszolgáló állomásnevének megkereséséről további információt az Azure Databricks számítási erőforrás kapcsolati adatainak lekérése című témakörben talál.

IpAclError Üzenetet

Probléma: A kód futtatásakor megjelenik az üzenet Error during request to server: IpAclValidation , amikor egy Azure Databricks-jegyzetfüzetben próbálja használni az összekötőt.

Lehetséges ok: Lehetséges, hogy engedélyezve van az IP-engedélyezési lista az Azure Databricks-munkaterületen. Az IP-cím engedélyezésével a Spark-fürtök és a vezérlősík közötti kapcsolatok alapértelmezés szerint nem engedélyezettek.

Javasolt javítás: Kérje meg a rendszergazdát, hogy adja hozzá a számításisík-alhálózatot az IP-engedélyezési listához.

További erőforrások

További információkért lásd: