当前位置: 首页 > 知识库问答 >
问题:

使用数据库在工作区之间切换-连接

隗瑞
2023-03-14

是否可以使用databricks连接来切换工作区?

我目前正在尝试切换:火花.conf.set(“火花.驱动程序.主机”,cluster_config[“主机”))

但这会返回以下错误:< code>AnalysisException:无法修改Spark配置的值:spark.driver.host

共有3个答案

景星光
2023-03-14

可能它没有直接回答你的问题,但是也可以使用Visual Studio Databricks插件,它将使用databricks connect,从那里可以很容易地切换到不同的env。https://marketplace.visualstudio.com/items?itemName = pai qo . data bricks-vs code。

        "databricks.connectionManager": "VSCode Settings",
        "databricks.connections": [
            {
                "apiRootUrl": "https://westeurope.azuredatabricks.net",
                "displayName": "My DEV workspace",
                "localSyncFolder": "c:\\Databricks\\dev",
                "personalAccessToken": "dapi219e30212312311c6721a66ce879e"
            },
            {
                "apiRootUrl": "https://westeurope.azuredatabricks.net",
                "displayName": "My TEST workspace",
                "localSyncFolder": "c:\\Databricks\\test",
                "personalAccessToken": "dapi219e30212312311c672aaaaaaaaaa"
            }
        ],
        ...
程瑞
2023-03-14
匿名用户

我创建了一个简单的python脚本来更改.databricks连接配置文件中的cluster_id

要执行,请确保您的虚拟env配置了环境变量DATABRICKS_CLUSTER。获取集群ID在官方< code>databricks-connect文档中显示。

设置环境变量:

export DATABRICKS_CLUSTER=your-cluster-id

设置环境变量后,只需使用以下python脚本在激活新虚拟环境时切换集群。

import os
import json

#Get databricks cluster associated with current virtual env
DATABRICKS_CLUSTER = os.getenv('DATABRICKS_CLUSTER')
HOME = os.getenv('HOME')

#Open the databricks-connect config file
with open(f'{HOME}/.databricks-connect', 'r') as j:
    config = json.loads(j.read())

#Update new cluster ID
config['cluster_id'] = DATABRICKS_CLUSTER

#Save the databricks connect config file
with open(f'{HOME}/.databricks-connect', 'w') as outfile:
    json.dump(config, outfile, indent=4)

东门俊民
2023-03-14

如果您查看有关设置客户端的文档,那么您将看到有三种方法可以配置Databricks连接:

    < li >使用< code > data bricks-connect configure 生成的配置文件-文件名始终为< code>~/。数据块-连接, < li >环境变量- 数据块地址,< code >数据块API令牌,... < li>Spark配置属性-< code > Spark . data bricks . service . address ,< code > Spark . data bricks . service . token ,...但是当使用这种方法时,Spark会话可能已经初始化,所以如果不重新启动Spark,您可能无法进行动态切换。

但是如果您使用不同的DBR版本,那么更改配置属性是不够的,您还需要切换包含相应版本的Databricks Connect分布的Python环境。

对于我自己的工作,我写了遵循Zsh脚本,允许在不同的设置(分片)之间轻松切换 - 它允许一次只使用一个分片。先决条件是:

  • Python环境是用名称创建的
pyenv activate field-eng-shard
pip install -U databricks-connect==<DBR-version>
  • 数据块连接配置一次,特定集群/分片的配置存储在 ~/.databricks 连接-
function use-shard() {
    SHARD_NAME="$1"
    if [ -z "$SHARD_NAME" ]; then
        echo "Usage: use-shard shard-name"
        return 1
    fi
    if [ ! -L ~/.databricks-connect ] && [ -f ~/.databricks-connect ]; then
        echo "There is ~/.databricks-connect file - possibly you configured another shard"
    elif [ -f ~/.databricks-connect-${SHARD_NAME} ]; then
        rm -f ~/.databricks-connect
        ln -s ~/.databricks-connect-${SHARD_NAME} ~/.databricks-connect
        pyenv deactivate
        pyenv activate ${SHARD_NAME}-shard
    else
        echo "There is no configuration file for shard: ~/.databricks-connect-${SHARD_NAME}"
    fi
}

 类似资料:
  • 我正在使用Apache POI生成excel工作表(. xls格式),并且我使用以下代码片段创建了链接到同一文档/工作簿中不同工作表的超链接。 我正在创建多个工作表,单击超链接后,它会显示相应的工作表。但是,我很难遍历到我用上述代码行创建的不同工作表。我需要用数据库中的数据填充这些工作表,但我不知道如何在这些工作表之间切换。 任何帮助都将不胜感激。如果我的问题有任何问题,请在投票前告诉我。谢谢!

  • 简介 在 Swoft 2.0.2 版本之前,连接池中没有数据库切换功能,这导致了不同数据库需要配置多个连接池,大大增加了维护成本。所以在 2.0.2 开始新增了切换数据库功能。你可以在链式操作中使用 db() 方法进行指定,这显然不够灵活难以维护,下面推荐一个根据上下文切换数据的操作。 Swoft 版本需 >= 2.0.2 DbSelector 实现 使用 DbSelector 需实现 Swoft

  • 我有一个带有底栏的main_activity。我正在使用这个底栏在片段之间导航。然而,有一个片段不能通过底部栏直接导航。它必须通过MapView和从片段中访问。然而,每当我使用InfoWindow时,该应用程序就会崩溃。这是我的代码 异常:main process:com.teslaqubitsins.fasih.teslahcm,pid:2573 java.lang.nullpointerexc

  • 每当我在eclipse上切换工作区时,我都会得到错误: 期间发生内部错误:“正在初始化 Java 工具”。重复的字段名称 如果我重启Eclipse,它就会正确地加载新的工作区。你知道我该怎么解决这个问题吗? 我在视窗 7 上使用日食开普勒

  • 很多时候,我们需要操作不同的数据库。 首先,需要定义不同的数据表连接配置,配置文件中:     //默认Mysql数据库 'default_mysql_config' => 'mysql', //g-framework数据库配置 'mysql' => array( 'host'  => 'localhost', 'port' => '3306', 'username' => 'root', 'pa

  • 问题内容: 我对使用MYSQL的PDO有点陌生,这是我的两个文件: 我有一个用于连接数据库的连接类: 我有一个account_info类,用于查询数据库中的数据: 我在index.php页面中都包含了这两个文件: 我只是无法使其正常工作,我没有任何输出,我认为它与示波器有关,但是由于我是PDO和OOP的新手,所以我不知道为什么要修复它的正确方法。提前致谢。 问题答案: 解决方案1 替换为 更换 与