Jupyter中Db2 %%sql魔法命令赋值变量时报无效语法错误如何处理
Db2 %%sql 魔法命令赋值&转DataFrame解决方案
首先明确问题根源:
%sql属于行魔法命令,仅作用于单行代码,支持直接用变量名=%sql 语句的格式赋值,这也是你单行写法可以正常运行的原因%%sql属于单元格魔法命令,作用于整个单元格的内容,语法上不支持直接在单元格第一行用变量名=%%sql的格式赋值,所以会触发无效语法错误
多行SQL结果赋值转DataFrame的标准实现方法
方法1:使用-o参数指定输出变量(推荐)
直接在%%sql后加-o 变量名参数,即可将当前单元格的SQL执行结果存储到指定变量中,后续直接调用.DataFrame()方法即可转为Pandas DataFrame:
%%sql -o emp_result Select id, name , address from employees Where age>18
执行完上述单元格后,运行下行代码即可得到DataFrame格式的结果:df = emp_result.DataFrame()
方法2:多行SQL字符串传入行魔法
如果更习惯用行魔法的赋值写法,可以把多行SQL定义为字符串变量,再用$符传入行魔法执行:
# 定义多行SQL emp_sql = """ Select id, name , address from employees Where age>18 """ # 执行SQL并赋值给变量 emp_result = %sql $emp_sql # 转DataFrame df = emp_result.DataFrame()
内容的提问来源于stack exchange,提问作者Helronaa
相关产品推荐
相关产品推荐

