在 Python 中通过 Databricks api 读取 Databricks table?

Read a Databricks table via Databricks api in Python?

使用 Python-3,我试图将 Excel (xlsx) sheet 与 Databricks 中的相同火花 table 进行比较。我想避免在 Databricks 中进行比较。所以我正在寻找一种通过 Databricks api 读取 spark table 的方法。这可能吗?我怎样才能继续阅读 table: DB.TableName?

我可以推荐你在 notebook 中编写 pyspark 代码,从之前定义的作业中调用 notebook,并在你的本地机器和 databricks 工作区之间建立连接。

如果您愿意,您可以直接在 spark 上执行 comaprision 或将数据帧转换为 pandas。如果 noteebok 将结束比较,则可以重新运行特定作业的结果。我认为发送所有数据块表是不可能的,因为 API 限制你有 spark 集群来执行复杂的操作,API 应该用于发送小消息。

官方文档: https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/latest/jobs#--runs-get-output

Retrieve the output and metadata of a run. When a notebook task returns a value through the dbutils.notebook.exit() call, you can use this endpoint to retrieve that value. Azure Databricks restricts this API to return the first 5 MB of the output. For returning a larger result, you can store job results in a cloud storage service.

据我所知,无法从数据库 API 中读取 table,除非您 运行 将其作为 LaTreb 已经提到的工作。但是,如果您真的想要,您可以使用 ODBC 或 JDBC 驱动程序通过您的数据块集群获取数据。

有关如何设置的信息,请参见 here

设置 DSN 后,您可以使用 pyodbc 连接到数据块和 运行 查询。此时 ODBC 驱动程序将只允许您 运行 Spark-SQL 命令。

综上所述,将数据加载到 Databricks 中可能仍然更容易,除非您有某种安全问题。