我试图通过databricks中的jdbc连接查询sql数据库,并将查询结果存储为一个dataframe。我在网上找到的所有方法都涉及到将其存储为一种spark对象,首先使用scala代码,然后将其转换为pandas。我试过一号牢房:
%scala
val df_table1 = sqlContext.read.format("jdbc").options(Map(
("url" -> "jdbc:sqlserver://myserver.database.windows.net:1433;database=mydb"),
("dbtable" -> "(select top 10 * from myschema.table) as table"),
("user" -> "user"),
("password" -> "password123"),
("driver" -> "com.microsoft.sqlserver.jdbc.SQLServerDriver"))
).load()
结果是:
df_table1: org.apache.spark.sql.DataFrame = [var1: int, var2: string ... 50 more fields]
太好了!但是当我试着把它转换成细胞2中的df,这样我就可以使用它了:
import numpy as np
import pandas as pd
result_pdf = df_table1.select("*").toPandas()
print(result_pdf)
它生成错误消息:
NameError: name 'df_table1' is not defined
我如何成功地将这个对象转换成一个pandas dataframe,或者是否有任何方法可以使用python代码通过jdbc连接查询sql数据库而不需要使用scala(我并不特别喜欢scala语法,如果可能的话,我宁愿避免使用它)?
1条答案
按热度按时间vcudknz31#
我假设您打算使用python查询sql,如果是这样的话,下面的查询就可以了。