【问题标题】:Writing data to azure sql using python on azure databricks在 azure databricks 上使用 python 将数据写入 azure sql
【发布时间】:2020-11-09 20:01:37
【问题描述】:

我是 databricks 的新手,我需要安排一些代码来使用 python 将数据转换和写入 azure sql 数据库。

我收到以下错误: DBAPIError: (pyodbc.Error) ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

在本地运行代码工作正常,并将数据写入 azure sql db。

下面是我的代码示例

server = "example.database.windows.net"
database = ""
username = ""
password = ""

driver = '{ODBC Driver 17 for SQL Server}'

odbc_str = 'DRIVER='+driver+';SERVER='+server+';PORT=1433;UID='+username+';DATABASE='+ database + ';PWD='+ password
connect_str = 'mssql+pyodbc:///?odbc_connect=' + urllib.parse.quote_plus(odbc_str)
engine = create_engine(connect_str)

df = pd.DataFrame({"Def": [1,2,3,4,5]})

def to_sql(df, table):
    df.to_sql(table, engine, if_exists = "replace", index=False, chunksize = 100)

to_sql(df, "Def")

【问题讨论】:

标签: python apache-spark azure-sql-database azure-databricks


【解决方案1】:

默认情况下,Azure Databricks 没有安装 ODBC 驱动程序。

在运行上述命令之前,请确保您已经安装了 MY SQL ODBC Driver。

在单个单元格中运行以下命令以在 Azure Databricks 群集上安装 MY SQL ODBC 驱动程序。

%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

【讨论】:

  • 还有一个问题,我在 databricks 中使用 Python 从 REST API 中提取数据,并将输出写入 azure sql db。从 api 中提取数据速度很快,但将其写入 azure sql 速度非常慢。这是推荐的方法还是您会提出不同的建议?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多