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

Spark EMR集群Jupyter中%%spark_sql命令作用、来源及参数咨询

%%spark_sql 问题解答

技术归属与来源

%%spark_sql是AWS EMR专属的Jupyter扩展魔法命令,不属于原生Spark、PySpark或者开源Jupyter的默认语法,是AWS为EMR Notebook/EMR Studio场景定制的交互功能,这也是你用通用关键词检索不到对应内容的核心原因。

核心作用

该单元格魔法命令可以直接将当前单元格内的内容识别为Spark SQL语句提交到集群执行,无需手动编写spark.sql(xxx)的PySpark调用代码,也无需额外编写结果打印逻辑,大幅简化EMR环境下的Spark SQL交互流程。

常用参数含义

  • -s:布尔类型参数,可选值true/false,用于控制SQL执行完成后是否自动展示结果集,默认值为true。你给出的示例%%spark_sql -s true就是显式指定执行SQL后自动打印查询结果。
  • -n:数值类型参数,传入正整数即可,用于控制自动展示结果时返回的最大行数,默认值一般为100,比如%%spark_sql -n 20就代表最多展示20条查询结果。
  • 其他常用可选参数:
    • -c:指定执行SQL对应的Spark会话名称,适用于多Spark会话隔离的场景
    • -o:指定结果集对应的Python变量名,查询完成后可以直接在后续Python/PySpark单元格中调用该变量做进一步处理

常见使用示例

基础执行,展示默认行数结果

%%spark_sql
SELECT * FROM tmp.test_df WHERE age > 18

限定展示10条结果

%%spark_sql -n 10
SELECT user_id, register_time FROM prod.user_info LIMIT 100

结果写入Python变量、不自动展示

%%spark_sql -s false -o user_consume_df
SELECT 
  user_id,
  sum(consume_amount) as total_consume,
  count(order_id) as order_cnt
FROM prod.order_info
GROUP BY user_id

执行完成后,你可以直接在后续单元格中使用user_consume_df变量进行数据分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:00:02