我正在使用以下代码连接到Databricks集群。但是得到了thrift.transport.TTransport.TTransportException: TSocket read 0 bytes
。我认为create_engine中的my_url有一些错误。
from sqlalchemy.engine import create_engine
engine = create_engine(my_url)
res = engine.execute('SELECT * FROM
alex_db.sams_us_clubs_sams_member_index LIMIT 5')
for row in res:
print(res)
由于这是公司的集群,所以无法显示my_url
的详细信息。有没有人有使用pyhive sqlalchemy连接到databricks集群的经验?
答案 0 :(得分:1)
您要如何访问配置单元?您是否在spark / Databricks服务器上运行它?
如果要以编程方式运行它,请访问以下网站,了解如何通过jdbc / odbc软件包(https://docs.databricks.com/user-guide/bi/jdbc-odbc-bi.html来设置数据块)
如果您在Spark服务器上运行应用程序,则可以启用以下配置单元查询:
// Create a SparkSession. No need to create SparkContext
// You automatically get it as part of the SparkSession
spark = SparkSession
.builder()
.appName("SparkSessionZipsExample")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate()
来源:https://databricks.com/blog/2016/08/15/how-to-use-sparksession-in-apache-spark-2-0.html
答案 1 :(得分:0)
您可以使用以下功能为pyhive / databricks创建一个SQL Alchemy引擎。
令牌:可以在databricks控制台上生成访问令牌
区域:例如https:// $ {location_of_server} .azuredatabricks.net /
数据库:您要连接的数据库的名称
http_path :sql / protocolv1 / o / $ {organization_id} / $ {cluster_id}
您将需要将所有必需的依赖项添加到您的项目中。
dbfs_engine = create_engine(
"databricks+pyhive://token:" + token + "@" + region + ".azuredatabricks.net:443/" + database,
connect_args={"http_path": http_path}
)