Oktatóanyag: Python-kód futtatása kiszolgáló nélküli számításon

Megjegyzés:

Ez a cikk a Databricks Connect 15.4 LTS és újabb verziókra vonatkozik.

Ez a cikk bemutatja, hogyan hozhat létre projektet az IDE-ben, hogyan állíthatja be a virtuális környezetet, telepítheti a Pythonhoz készült Databricks Connectet, és hogyan futtathat kódot kiszolgáló nélküli számításon a Databricks-munkaterületen.

Ez az oktatóanyag a Python 3.12-t és a Databricks Connect 17.3 LTS-t használja. A Databricks Connect Python más verzióinak használatához kompatibilisnek kell lenniük. Tekintse meg a verziótámogatási mátrixot.

Követelmények

Az oktatóanyag elvégzéséhez a következő követelményeknek kell teljesülniük:

1. lépés: A Databricks-hitelesítés konfigurálása

Ez az oktatóanyag a Databricks OAuth felhasználó–gép (U2M) hitelesítést és egy Databricks konfigurációs profilt használ a Databricks-munkaterületre való hitelesítéshez.

  1. Az OAuth-jogkivonatok helyi felügyeletének elindításához használja a Databricks parancssori felületét az alábbi parancs futtatásával minden cél-munkaterületen. A következő parancsban cserélje le <workspace-url> például a Databricks-munkaterületpéldány URL-címéthttps://dbc-a1b2345c-d6e7.cloud.databricks.com.

    databricks auth login --host <workspace-url>
    
  2. A Databricks parancssori felülete kéri, hogy mentse a Databricks konfigurációs profilként megadott adatokat. Nyomja meg a Enter gombot a javasolt profilnév elfogadásához, vagy írja be egy új vagy meglévő profil nevét. A Databricks a profilnév használatát DEFAULT javasolja.

  3. A webböngészőben végezze el a képernyőn megjelenő utasításokat a Databricks-munkaterületre való bejelentkezéshez.

2. lépés: Új Python virtuális környezet létrehozása

  1. Hozza létre a projektmappát, és nyissa meg az IDE-ben. A Visual Studio Code főmenüjében például kattintson a Fájl>megnyitása mappa>

  2. Nyisson meg egy terminálablakot a projektmappa gyökérkönyvtárában. A Visual Studio Code főmenüjében például kattintson aTerminál>.

  3. Hozzon létre egy virtuális környezetet a projekt mappájának gyökerénél, venv és futtassa a következő parancsot a terminálban:

    python3.12 -m venv .venv
    
  4. A virtuális környezet aktiválása:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

3. lépés: A Databricks Connect telepítése

Telepítse a Databricks Connectet. A Databricks Connect legújabb kiadású verzióival kapcsolatos információkért lásd a Databricks Connect kibocsátási megjegyzéseit.

pip install "databricks-connect==17.3.*"

4. lépés: Kód hozzáadása és futtatása

  1. Új Python-fájl main.py hozzáadása a projekthez

  2. Írja be a következő kódot a fájlba, cserélje le a helyőrzőt <profile-name> a konfigurációs profil nevére az 1. lépésben, majd mentse a fájlt. Az alapértelmezett konfigurációs profilnév a következő DEFAULT: .

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. Futtassa a kódot a következő paranccsal:

    python3 main.py
    

    A rendszer a tábla öt sorát adja vissza:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

Sikeresen futtatta az első lekérdezést a Databricks kiszolgáló nélküli számításán a Databricks Connect használatával az IDE-ből.

5. lépés: A kód éles üzemkészsé tétele

Éles forgatókönyvek esetén fontos, hogy ne használjon számítási specifikációkat a Spark-munkamenet-szerkesztőben. Ha például a kódot egy klasszikus fürtön helyezi üzembe: Standard vagy Dedicated az API-t használja a .serverless() Spark-munkamenet-szerkesztőben, a rendszer létrehoz egy új kiszolgáló nélküli Spark-munkamenetet a klasszikus fürt ügyfélként való használatával.

Ahhoz, hogy a kód rugalmas és éles használatra kész legyen, a Spark-munkamenet nem tartalmazhat paramétereket.

spark = DatabricksSession.builder.getOrCreate()

Ha azonban ezt a kódot a Databricksen futtatja, a Rendszer a Databricks-számítás alapértelmezett globális Spark-munkamenetét használja.

Ha engedélyezni szeretné a kiszolgáló nélküli számítást az IDE-ben, használja az ALAPÉRTELMEZETT konfigurációs profilt, amelyet akkor választ ki, DatabricksSession.builder ha nincsenek megadva paraméterek:

  1. Hozzon létre egy konfigurációs profilt DEFAULT az 1. lépés utasításai alapján.

  2. A fájl megnyitásához .databrickscfg használjon szövegszerkesztőt, amely a következő helyen található:

    • A $HOME felhasználó kezdőlapja Unix, Linux vagy macOS rendszeren: ~/.databrickscfgvagy

    • Az Ön %USERPROFILE% (a felhasználó kezdőlapja) mappája a Windowsban. Például macOS esetén:

      nano ~/.databrickscfg
      
  3. Hozzáadás serverless_compute_id = auto a DEFAULT profilhoz:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. Mentse a módosításokat, és lépjen ki a szerkesztőből.

  5. Módosítsa a kódot egy általános Spark-munkamenet használatára, és futtassa azt:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
    python3 main.py
    

Sikeresen futtatta az éles üzemre kész kódot a Databricks kiszolgáló nélküli számításán a Databricks Connect használatával az IDE-ből az ALAPÉRTELMEZETT konfigurációs profil használatával.

Jótanács

Környezeti változók használatával is beállíthatja a kapcsolatot egy adott Databricks-számításhoz:

  • Kiszolgáló nélküli: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • Klasszikus: DATABRICKS_CLUSTER_ID=<your_cluster_id>