You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks如何将%sql单元格的查询结果赋值给Python变量

解决方案

这个需求完全可以实现,主流支持Spark的 Notebook 环境(如Databricks Notebook、Jupyter PySpark内核)都提供了对应能力,具体操作方法如下:

方法1:使用%sql魔术命令的输出参数(最简便)

你只需要修改cell 2的%sql命令,增加输出变量参数即可:

%sql -o diamond_df
select * from diamonds

其中-o diamond_df的作用是将本次SQL查询的结果直接赋值给名为diamond_df的变量,该变量为PySpark DataFrame类型,和你cell 1里通过spark.sql返回的ds变量属性完全一致。

之后你cell 3的代码可以直接写为:

display(diamond_df)

你还可以对diamond_df执行filter、groupBy等所有PySpark DataFrame支持的操作。

方法2:通用兼容方案

如果你的Notebook环境不支持%sql的输出参数,可以用变量统一管理SQL语句,同时适配SQL单元格执行和Python变量调用:

  1. 先在Python单元格定义SQL语句变量:
diamond_sql = "select * from diamonds"
  1. 要在SQL单元格执行时直接调用变量即可:
%sql $diamond_sql
  1. 要赋值给Python变量时直接用spark.sql方法:
diamond_df = spark.sql(diamond_sql)
display(diamond_df)

内容的提问来源于stack exchange,提问作者Jerry Nixon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 08:15:02