当前位置: 首页 > news >正文

PySpark 中使用 SQL 语句和表进行计算

PySpark 中使用 SQL 语句和表进行计算

PySpark 完全支持使用 SQL 语句和表进行 Spark 计算。以下是几种常见的使用方式:

1. 使用 Spark SQL

from pyspark.sql import SparkSession# 创建 SparkSession
spark = SparkSession.builder.appName("SQLExample").getOrCreate()# 创建 DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
df = spark.createDataFrame(data, ["name", "age"])# 将 DataFrame 注册为临时视图
df.createOrReplaceTempView("people")# 执行 SQL 查询
result = spark.sql("SELECT name, age FROM people WHERE age > 30")
result.show()

2. 直接读取数据源为表

# 读取 CSV 文件并注册为表
df = spark.read.csv("path/to/file.csv", header=True, inferSchema=True)
df.createOrReplaceTempView("my_table")# 执行复杂 SQL 查询
spark.sql("""SELECT department, AVG(salary) as avg_salaryFROM my_tableGROUP BY departmentORDER BY avg_salary DESC
""").show()

3. 使用全局临时视图(跨会话)

# 创建全局临时视图
df.createOrReplaceGlobalTempView("global_people")# 在其他 SparkSession 中访问(需要指定 global_temp 数据库)
spark.sql("SELECT * FROM global_temp.global_people").show()

4. 与 Hive 表集成

如果配置了 Hive 支持,可以直接查询 Hive 表:

# 查询已存在的 Hive 表
spark.sql("SELECT * FROM hive_database.hive_table").show()

注意事项

  1. 临时视图只在当前 SparkSession 中有效
  2. 对于大数据集,Spark SQL 会自动优化执行计划
  3. 可以混合使用 DataFrame API 和 SQL 查询
  4. 确保在集群模式下正确配置了资源

PySpark 的 SQL 支持非常完整,包括大多数标准 SQL 功能以及一些 Spark 特有的扩展功能。

相关文章:

  • 小程序定制开发:从需求到落地,打造企业专属数字化入口
  • Dockerfile 构建优化的方法
  • VM改MAC电脑密码(截图)
  • LiveWallpaperMacOS:让你的 Mac 桌面动起来
  • 实时数据是什么意思?如何能做到实时数据同步?
  • Linux的交换区
  • Vuer开源程序 是一个轻量级的可视化工具包,用于与动态 3D 和机器人数据进行交互。它支持 VR 和 AR,可以在移动设备上运行。
  • 谷歌浏览器Google Chrome v137.0.7151.41 中文版本版+插件 v1.11.1
  • 【GraphQL】深入解析 Apollo Client:从架构到实践的一站式 GraphQL 解决方案
  • [蓝桥杯C++ 2024 国 B ] 立定跳远(二分)
  • Java五种方法批量处理List元素全解
  • 《异常链与统一异常处理机制设计:让 Java 项目更清晰可靠》
  • 根据jvm源码剖析类加载机制
  • 可视化提示词嵌入向量在训练过程中的变化:visualize_embedding_changes
  • 图像卷积OpenCV C/C++ 核心操作
  • SQL里几种JOIN连接
  • 【已解决】windows gitbash 出现CondaError: Run ‘conda init‘ before ‘conda activate‘
  • Zsh/Bash Conda设置延迟启动,启动速度优化
  • zookeeper 操作总结
  • 打破网络次元壁:NAT 穿透与内网打洞的 “Matrix 式” 通信革命
  • 网站建设怎么加音乐/域名注册服务商
  • 漳州 外贸网站建设 SEO/百度关键词广告怎么收费
  • 成都的网站/交易链接
  • 网站做的好的公司有/种子搜索神器网页版
  • 在线购物的网站制作/seo主要做什么
  • 苏州网站建设方法/大量微信群推广代发广告