spark组件-spark sql-读取数据

支持的数据源类型

Spark SQL 内置支持丰富的数据格式和外部系统,核心数据源包括:

‌列式存储‌ :Parquet(默认格式)、ORC
‌文本格式‌ :JSON、CSV、TXT
‌关系数据库‌ :通过 JDBC 连接 MySQL、PostgreSQL 等
‌大数据生态‌ :Hive 表、HDFS 文件

其他来源‌ :Avro、XML(通常需要额外库)

每种数据源在性能上有显著差异,例如 Parquet 采用列式存储,在分析型查询中性能最优。

例子

java 复制代码
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

public class a_SparkSql_Env {
    public static void main(String[] args) {

        SparkSession sparkSession = SparkSession.builder().master("local").appName("sparksql").getOrCreate();

        Dataset<Row> json = sparkSession.read().option("spark.sql.adaptive.enabled",true).json("input/user.json");

        json.createOrReplaceTempView("user");

        json.select("age").show();

//        String sql = "select age from user";
//        Dataset<Row> df = sparkSession.sql(sql);


//        df.show();

        sparkSession.close();
    }
}

更多例子参见官网:spark sql数据源

配置优化策略‌:

‌并行度调整‌ :设置 spark.sql.shuffle.partitions 优化 shuffle 性能

内存缓存‌ :对频繁访问的表使用 spark.catalog.cacheTable() 或 dataFrame.cache()
数据源特定优化‌:如 Parquet 的谓词下推、ORC 的索引使用

读取性能调优技巧‌:

启用 spark.sql.adaptive.enabled=true 实现自适应查询执行

设置 spark.sql.files.maxPartitionBytes 控制分区大小

使用 spark.sql.autoBroadcastJoinThreshold 优化小表广播

相关推荐
碧口科技13 分钟前
合规打底 价值锚定:博彦科技FDE模式打通金融AI境内外规模化落地路径
大数据
天行健,君子而铎21 分钟前
场景化适配+合规审查+技术突破:运营商AI数据分类分级最优解决方案
大数据·安全
leisoo80979 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
AI产品测评官9 小时前
突破系统割裂困局:2026企业级AI招聘架构如何迈向“原生全流程”?
大数据·微服务·架构
梦梦代码精9 小时前
连锁品牌数字化:从门店扩张到用户资产运营的技术底座
大数据·人工智能·低代码·docker·开源·代码规范
沐梯子12 小时前
具身智能爆发前夜的“数据饥渴”:2026机器人数据采集产业链选型解析
大数据·人工智能·机器人
ltqvibe12 小时前
企业数智化中台的五层架构——AI框架为什么需要纵向贯通
大数据·人工智能·架构
smilejingwei12 小时前
CodeBuddy+SQLazy 编写复杂 SQL 详解
sql·codebuddy·sqlazy
吴free13 小时前
现代软件工程新范式:Harness、LOOP与Graph工程深度解析
大数据·软件工程
阿里云大数据AI技术14 小时前
阿里云 EMR Daft AI Function:用 DataFrame 表达式搞定大模型调用与多模态向量化
人工智能·spark