sparkSQL读取数据的方式

Spark SQL 提供了多种灵活的数据读取方式,支持多种数据源格式。以下是核心读取方法及示

linux环境下,按照如下方式进行

进入目录

cd /opt/installs/anaconda3/lib/python3.8/site-packages/pyspark/jars

上传jar包:mysql-connector-java-5.1.32.jar

例:

1. 从文件读取

(1) CSV 文件
复制代码
df = spark.read \
    .format("csv") \
    .option("header", "true") \  # 包含标题行
    .option("inferSchema", "true") \  # 自动推断数据类型
    .load("/path/to/file.csv")
(2) JSON 文件
复制代码
df = spark.read \
    .format("json") \
    .load("/path/to/file.json")
(3) Parquet 文件 (列式存储)
复制代码
df = spark.read \
    .format("parquet") \
    .load("/path/to/file.parquet")
(4) ORC 文件
复制代码
df = spark.read \
    .format("orc") \
    .load("/path/to/file.orc")

2. 从 JDBC 数据库读取

复制代码
df = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:mysql://host:port/db") \
    .option("dbtable", "table_name") \
    .option("user", "username") \
    .option("password", "password") \
    .load()

3. 从 Hive 表读取

复制代码
df = spark.sql("SELECT * FROM hive_database.table_name")

4. 通用读取方法

支持通过格式名直接调用:

复制代码
# 等效方法
df = spark.read.csv("/path/to/file.csv", header=True)
df = spark.read.json("/path/to/file.json")
df = spark.read.parquet("/path/to/file.parquet")

5. 高级配置选项

参数 说明 示例值
sep 分隔符 (CSV) ";"
encoding 文件编码 "UTF-8"
mergeSchema 合并多个 Parquet 文件的 Schema "true"
query JDBC 自定义查询语句 "(SELECT col1 FROM t)"

6. 示例:读取带特殊配置的 CSV

复制代码
df = spark.read \
    .option("sep", "|") \  # 管道分隔符
    .option("nullValue", "N/A") \  # 自定义空值标识
    .option("dateFormat", "yyyy-MM-dd") \  # 日期格式
    .csv("/data/sales_records.csv")

最佳实践

  • 优先使用 Parquet/ORC 等列式格式提升性能
  • 大数据集避免 inferSchema,显式定义 Schema
  • JDBC 连接添加 fetchsize 优化吞吐量
相关推荐
极光代码工作室1 天前
基于数据分析的电影票房预测系统
大数据·python·数据分析·spark·数据可视化
KaMeidebaby2 天前
卡梅德生物技术快报|噬菌体文库构建实验优化及偶联体系实验数据分析
大数据·人工智能·架构·spark·新浪微博
鸿乃江边鸟2 天前
Spark中怎么做Spark canonicalize归一化
大数据·分布式·spark
ACP广源盛139246256733 天前
GSV2221 显示转换芯片@ACP#赋能 RTX Spark 端侧 AI 设备,构建多屏全模态视觉交互新生态
大数据·人工智能·嵌入式硬件·gpt·spark·电脑·音视频
ACP广源盛139246256734 天前
GSV2231 三屏显示扩展芯片@ACP#RTX Spark AI 终端多屏协作专属解决方案
大数据·人工智能·分布式·信息可视化·spark·电脑·音视频
KaMeidebaby5 天前
卡梅德生物技术快报|蛋白定制:ACE 抑制肽原辅料工艺全参数|适配蛋白定制的提取 & 酶解标准化实操手册
大数据·人工智能·架构·spark·新浪微博
阿里云大数据AI技术7 天前
EMR Serverless Spark 数据湖上新能力:一条 SQL 实现标量向量混合检索
人工智能·sql·spark
暴躁小师兄数据学院7 天前
【AI大数据工程师特训笔记】第16讲:大数据环境安装
大数据·hadoop·笔记·flink·spark·database
IDIOT___IDIOT8 天前
Docker 集群运行 Spark 的一些记录
docker·容器·spark