Spark-SQL核心编程

  1. Spark-SQL数据加载与保存
  • 通用方式:加载使用 spark.read.load ,可通过 format("...") 指定数据类型 , load("...") 传入数据路径, option("...") 设置JDBC参数。保存用 df.write.save ,同样可指定类型、路径和JDBC参数,还能通过 mode() 设置 SaveMode 处理已存在文件。

  • Parquet格式:Spark SQL默认数据源,加载和保存操作简单,无需 format 指定,修改 spark.sql.sources.default 可更改默认格式。

  • JSON格式:能自动推测结构加载为 Dataset[Row] ,读取的JSON文件每行应为JSON串。

  • CSV格式:可配置列表信息,通过设置 sep inferSchema header 等选项读取,第一行设为数据列。

  • MySQL:借助JDBC读取和写入数据。读取时导入 mysql-connector-java 依赖,可使用 spark.read.format("jdbc") 多种形式;写入时先创建数据集,再按JDBC格式设置参数并指定 SaveMode 保存。

  1. Spark-SQL连接Hive
  • 内嵌Hive:使用方便,直接可用,但实际生产中很少使用。

  • 外部Hive:在 spark-shell 连接需拷贝 hive-site.xml core-site.xml hdfs-site.xml 到 conf/ 目录,将 hive-site.xml 中 localhost 改为实际节点名,拷贝MySQL驱动到 jars/ 目录,最后重启 spark-shell 。

  • Spark beeline:Spark Thrift Server兼容HiveServer2,部署后可用 beeline 访问。连接步骤与连接外部Hive类似,还需启动Thrift Server,用 beeline -u jdbc:hive2://node01:10000 -n root 连接。

  • Spark-SQL CLI:可本地运行Hive元数据服务并执行查询。操作时将MySQL驱动放入 jars/ , hive-site.xml 放入 conf/ ,运行 bin/ 目录下的 spark-sql.cmd 。

  • 代码操作Hive:先导入 spark-hive_2.12 和 hive-exec 依赖,拷贝 hive-site.xml 到项目 resources 目录,代码中启用Hive支持。若遇权限问题,可设置 System.setProperty("HADOOP_USER_NAME", "node01") ,还可修改数据库仓库地址 。

相关推荐
明天好,会的3 小时前
从Spark/Flink到WASM:流式处理框架的演进与未来展望
flink·spark·wasm
IvanCodes2 天前
三、Spark 运行环境部署:全面掌握四种核心模式
大数据·分布式·spark
喻师傅3 天前
SparkSQL 子查询 IN/NOT IN 对 NULL 值的处理
大数据·spark
星星妳睡了吗4 天前
Spark DataFrame与数据源交互
大数据·分布式·spark
神仙别闹4 天前
基于Spark图计算的社会网络分析系统
大数据·分布式·spark
IvanCodes4 天前
二、Spark 开发环境搭建 IDEA + Maven 及 WordCount 案例实战
大数据·spark·scala
涤生大数据4 天前
从8h到40min的极致并行优化:Spark小数据集UDTF处理的深度实践与原理剖析
大数据·分布式·spark·涤生大数据
qq_463944865 天前
【Spark征服之路-3.7-Spark-SQL核心编程(六)】
sql·ajax·spark
青云交6 天前
Java 大视界 -- 基于 Java 的大数据分布式计算在地球物理勘探数据处理与地质结构建模中的应用(356)
java·大数据·spark·地质建模·分布式计算·地球物理勘探·地震数据处理
qq_463944866 天前
【Spark征服之路-3.6-Spark-SQL核心编程(五)】
sql·ajax·spark