Instalace Databricks Connect pro Scala

Poznámka:

Tento článek popisuje Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší.

Tento článek popisuje, jak nainstalovat Databricks Connect pro Scala. Podívejte se, co je Databricks Connect? Verzi pythonu tohoto článku najdete v tématu Instalace Databricks Connect pro Python.

Požadavky

  • Váš cílový pracovní prostor a cluster Azure Databricks musí splňovat požadavky na konfiguraci clusteru pro Databricks Connect.
  • Sada Java Development Kit (JDK) nainstalovaná na vývojovém počítači. Databricks doporučuje, aby verze instalace sady JDK, kterou používáte, odpovídala verzi sady JDK ve vašem clusteru Azure Databricks. Informace o verzi sady JDK v clusteru najdete v části Systémové prostředí poznámky k verzi databricks Runtime pro váš cluster. Například Zulu 8.70.0.23-CA-linux64 odpovídá JDK 8. Viz poznámky k verzi databricks Runtime a verze kompatibility.
  • Scala nainstalovaná na vývojovém počítači. Databricks doporučuje, aby verze instalace Scala, kterou používáte, odpovídala verzi Scala ve vašem clusteru Azure Databricks. Informace o verzi Scala ve vašem clusteru najdete v části Systémové prostředí poznámky k verzi databricks Runtime pro váš cluster. Viz poznámky k verzi databricks Runtime a verze kompatibility.
  • Nástroj pro sestavení Scala na vývojovém počítači, například sbt.

Nastavení klienta

Po splnění požadavků pro Databricks Connect proveďte následující kroky a nastavte klienta Databricks Connect.

Krok 1: Přidání odkazu na klienta Databricks Connect

  1. Do souboru sestavení projektu Scala, například build.sbt pro sbtMaven pom.xml nebo build.gradle Gradle, přidejte do klienta Databricks Connect následující odkaz:

    Sbt

    libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
    

    Maven

    <dependency>
      <groupId>com.databricks</groupId>
      <artifactId>databricks-connect</artifactId>
      <version>14.0.0</version>
    </dependency>
    

    Gradle

    implementation 'com.databricks.databricks-connect:14.0.0'
    
  2. Nahraďte 14.0.0 verzí knihovny Databricks Connect, která odpovídá verzi Databricks Runtime ve vašem clusteru. Čísla verzí knihovny Databricks Connect najdete v centrálním úložišti Maven.

Krok 2: Konfigurace vlastností připojení

V této části nakonfigurujete vlastnosti pro navázání připojení mezi Databricks Connect a vzdáleným clusterem Azure Databricks. Mezi tyto vlastnosti patří nastavení pro ověření databricks Connect ve vašem clusteru.

Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší platí pro Scala, Databricks Connect zahrnuje sadu Databricks SDK pro Javu. Tato sada SDK implementuje standard sjednoceného ověřování klienta Databricks, konsolidovaný a konzistentní přístup k ověřování prostřednictvím architektury a kódu programu. Díky tomuto přístupu je nastavení a automatizace ověřování pomocí Azure Databricks centralizovanější a předvídatelnější. Umožňuje nakonfigurovat ověřování Azure Databricks jednou a pak tuto konfiguraci použít napříč několika nástroji a sadami SDK Azure Databricks bez dalších změn konfigurace ověřování.

Poznámka:

  • Ověřování uživateleM (U2M) OAuth je podporováno v sadě Databricks SDK pro Javu 0.18.0 a novější. Abyste mohli používat ověřování OAuth U2M, budete možná muset aktualizovat nainstalovanou verzi sady Databricks SDK pro Javu na verzi 0.18.0 nebo vyšší. Viz Začínáme se sadou Databricks SDK pro Javu.

    Pro ověřování OAuth U2M musíte před spuštěním kódu Scala použít rozhraní příkazového řádku Databricks k ověření. Podívejte se na kurz.

  • V sadě Databricks SDK pro Javu 0.17.0 a novější se podporuje ověřování OAuth typu počítač-počítač (M2M). Možná budete muset aktualizovat nainstalovanou verzi sady Databricks SDK pro Kód pro Javu na verzi 0.17.0 nebo vyšší, aby bylo možné použít ověřování OAuth U2M. Viz Začínáme se sadou Databricks SDK pro Javu.

  • Sada Databricks SDK pro Javu zatím neimplementovala ověřování spravovaných identit Azure.

  1. Shromážděte následující vlastnosti konfigurace.

  2. Nakonfigurujte připojení v kódu. Databricks Connect vyhledá vlastnosti konfigurace v následujícím pořadí, dokud je nenajde. Jakmile je najde, přestane prohledávat zbývající možnosti. Podrobnosti o jednotlivých možnostech se zobrazí za následující tabulkou:

    Možnost vlastností konfigurace Platí pro
    1. Metoda DatabricksSession třídy remote() Pouze ověřování tokenů pat azure Databricks
    2. Konfigurační profil Azure Databricks Všechny typy ověřování Azure Databricks
    3. Proměnná SPARK_REMOTE prostředí Pouze ověřování tokenů pat azure Databricks
    4. Proměnná DATABRICKS_CONFIG_PROFILE prostředí Všechny typy ověřování Azure Databricks
    5. Proměnná prostředí pro každou vlastnost konfigurace Všechny typy ověřování Azure Databricks
    6. Konfigurační profil Azure Databricks s názvem DEFAULT Všechny typy ověřování Azure Databricks
    1. DatabricksSession Metoda třídy remote()

      Pro tuto možnost, která se vztahuje pouze na ověřování osobního přístupového tokenu Azure Databricks, zadejte název instance pracovního prostoru, osobní přístupový token Azure Databricks a ID clusteru.

      Třídu můžete inicializovat DatabricksSession několika způsoby následujícím způsobem:

      • Nastavte pole hosta tokenclusterId pole v DatabricksSession.builder.
      • Použijte třídu sady Databricks SDK Config .
      • Zadejte konfigurační profil Databricks spolu s polem clusterId .

      Databricks nedoporučuje přímo zadávat tyto vlastnosti připojení v kódu. Databricks místo toho doporučuje konfigurovat vlastnosti prostřednictvím proměnných prostředí nebo konfiguračních souborů, jak je popsáno v této části. Následující příklady kódu předpokládají, že zadáte určitou implementaci navrhovaných retrieve* funkcí sami, abyste získali potřebné vlastnosti od uživatele nebo z jiného úložiště konfigurace, jako je Azure KeyVault.

      Kód pro každý z těchto přístupů je následující:

      // Set the host, token, and clusterId fields in DatabricksSession.builder.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder()
        .host(retrieveWorkspaceInstanceName())
        .token(retrieveToken())
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Use the Databricks SDK's Config class.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setHost(retrieveWorkspaceInstanceName())
        .setToken(retrieveToken())
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
      // Specify a Databricks configuration profile along with the clusterId field.
      // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
      // cluster's ID, you do not also need to set the clusterId field here.
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    2. Konfigurační profil Azure Databricks

      Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro podporovaný typ ověřování Databricks, který chcete použít.

      Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

      • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
      • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
      • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
      • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
      • Pro ověřování Azure CLI: host.
      • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

      Potom nastavte název tohoto konfiguračního profilu prostřednictvím DatabricksConfig třídy.

      Můžete zadat cluster_id několika způsoby následujícím způsobem:

      • Do konfiguračního cluster_id profilu zahrňte pole a zadejte název konfiguračního profilu.
      • Zadejte název konfiguračního profilu spolu s polem clusterId .

      Pokud jste už nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte ani zadávat cluster_id clusterId pole.

      Kód pro každý z těchto přístupů je následující:

      // Include the cluster_id field in your configuration profile, and then
      // just specify the configuration profile's name:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
        val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .getOrCreate()
      
      // Specify the configuration profile name along with the clusterId field.
      // In this example, retrieveClusterId() assumes some custom implementation that
      // you provide to get the cluster ID from the user or from some other
      // configuration store:
      import com.databricks.connect.DatabricksSession
      import com.databricks.sdk.core.DatabricksConfig
      
      val config = new DatabricksConfig()
        .setProfile("<profile-name>")
      val spark = DatabricksSession.builder()
        .sdkConfig(config)
        .clusterId(retrieveClusterId())
        .getOrCreate()
      
    3. Proměnná SPARK_REMOTE prostředí

      Pro tuto možnost, která se vztahuje pouze na ověřování tokenů pat pro Azure Databricks, nastavte SPARK_REMOTE proměnnou prostředí na následující řetězec a nahraďte zástupné symboly příslušnými hodnotami.

      sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
      

      Pak inicializovat DatabricksSession třídu následujícím způsobem:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pokud chcete nastavit proměnné prostředí, přečtěte si dokumentaci k vašemu operačnímu systému.

    4. Proměnná DATABRICKS_CONFIG_PROFILE prostředí

      Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro podporovaný typ ověřování Databricks, který chcete použít.

      Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

      Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

      • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
      • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
      • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
      • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
      • Pro ověřování Azure CLI: host.
      • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

      Nastavte proměnnou DATABRICKS_CONFIG_PROFILE prostředí na název tohoto konfiguračního profilu. Pak inicializovat DatabricksSession třídu následujícím způsobem:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pokud chcete nastavit proměnné prostředí, přečtěte si dokumentaci k vašemu operačnímu systému.

    5. Proměnná prostředí pro každou vlastnost konfigurace

      Pro tuto možnost nastavte proměnnou DATABRICKS_CLUSTER_ID prostředí a všechny další proměnné prostředí, které jsou nezbytné pro podporovaný typ ověřování Databricks, který chcete použít.

      Požadované proměnné prostředí pro každý typ ověřování jsou následující:

      • Pro ověřování osobního přístupového tokenu Azure Databricks: DATABRICKS_HOST a DATABRICKS_TOKEN.
      • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): DATABRICKS_HOST, DATABRICKS_CLIENT_IDa DATABRICKS_CLIENT_SECRET.
      • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): DATABRICKS_HOST
      • Pro ověřování DATABRICKS_HOSTinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , ARM_TENANT_ID, ARM_CLIENT_IDARM_CLIENT_SECRETa případně DATABRICKS_AZURE_RESOURCE_ID.
      • Pro ověřování Azure CLI: DATABRICKS_HOST.
      • Ověřování spravovaných identit Azure (kde je podporováno): DATABRICKS_HOST, ARM_USE_MSI, ARM_CLIENT_ID, a případně DATABRICKS_AZURE_RESOURCE_ID.

      Pak inicializovat DatabricksSession třídu následujícím způsobem:

      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()
      

      Pokud chcete nastavit proměnné prostředí, přečtěte si dokumentaci k vašemu operačnímu systému.

    6. Konfigurační profil Azure Databricks s názvem DEFAULT

      Pro tuto možnost vytvořte nebo identifikujte konfigurační profil Azure Databricks obsahující pole cluster_id a všechna další pole, která jsou nezbytná pro podporovaný typ ověřování Databricks, který chcete použít.

      Pokud jste již nastavili proměnnou DATABRICKS_CLUSTER_ID prostředí s ID clusteru, nemusíte také zadávat cluster_id.

      Pole požadovaného konfiguračního profilu pro každý typ ověřování jsou následující:

      • Pro ověřování osobního přístupového tokenu Azure Databricks: host a token.
      • Pro ověřování M2M (machine-to-machine) OAuth (kde je podporováno): host, client_ida client_secret.
      • Pro ověřování uživatele AAuth (U2M) (kde je to podporováno): host
      • Pro ověřování hostinstančního objektu služby Microsoft Entra ID (dříve Azure Active Directory): , azure_tenant_id, azure_client_idazure_client_secreta případně azure_workspace_resource_id.
      • Pro ověřování Azure CLI: host.
      • Ověřování spravovaných identit Azure (kde je podporováno): host, azure_use_msi, azure_client_id, a případně azure_workspace_resource_id.

      Pojmenujte tento konfigurační profil DEFAULT.

      Pak inicializovat DatabricksSession třídu následujícím způsobem:

      scala
      import com.databricks.connect.DatabricksSession
      
      val spark = DatabricksSession.builder().getOrCreate()