Databricks 中的 ODBC 驱动程序安装

问题描述 投票:0回答:1

我正在尝试在 azure databricks 中安装 ODBC 驱动程序。但我面临以下错误消息,

sudo:需要终端读取密码;使用 -S 选项从标准输入读取或配置askpass helper sudo:需要密码

我遵循的安装方法: 集群运行时版本:13.3 LTS(包括 Apache Spark 3.4.1、Scala 2.12)

  1. 从 pypi 将 pyodbc 安装到集群本身。
  2. 使用以下脚本安装 ODBC 驱动程序 17
%sh
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get -q -y install msodbcsql17
  1. 收到错误
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
  1. 然后尝试删除 sudo。收到错误 E:无法打开锁定文件 /var/lib/apt/lists/lock - 打开(13:权限被拒绝)

  2. 尝试使用 sudo -s 以 root 用户身份运行它,收到错误 E: 无法打开锁定文件 /var/lib/apt/lists/lock - open (13: 权限被拒绝)

请让我知道如何解决这个问题,因为我已经被这个问题困扰了好几天了。

odbc azure-databricks pyodbc
1个回答
0
投票

不可以,您不能在共享集群上执行此操作,至少不能在交互模式下执行此操作,因为用户彼此隔离。您需要将实际命令(见下文)放入 init 脚本中并将其附加到您的集群(有关详细信息,请参阅docs):

初始化脚本代码:

#!/bin/bash

curl --silent https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
# Install msodbcsql17
apt-get update
ACCEPT_EULA=Y apt-get --quiet ---yes install msodbcsql17

© www.soinside.com 2019 - 2024. All rights reserved.