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 天前
Spark 课程核心知识点复习汇总
大数据·分布式·spark
Light601 天前
智能重构人货场:领码SPARK破解快消行业增长困局的全景解决方案
spark·数字化转型·ai大模型·智能营销·快消行业·供应链优化
叫我:松哥1 天前
基于大数据和深度学习的智能空气质量监测与预测平台,采用Spark数据预处理,利用TensorFlow构建LSTM深度学习模型
大数据·python·深度学习·机器学习·spark·flask·lstm
火龙谷2 天前
day1-部署集群
spark
火龙谷2 天前
day3-构建数仓
spark
阿里云大数据AI技术3 天前
迅雷基于阿里云 EMR Serverless Spark 实现数仓资源效率与业务提升
spark
伟大的大威3 天前
在 NVIDIA DGX Spark部署 Stable Diffusion 3.5 并使用ComfyUI
stable diffusion·spark·comfyui
叫我:松哥3 天前
基于Spark智能推荐算法的农业作物推荐系统,推荐算法使用Spark ML风格推荐引擎
大数据·python·机器学习·spark-ml·spark·flask·推荐算法
是阿威啊3 天前
【用户行为归因分析项目】- 【企业级项目开发第五站】数据采集并加载到hive表
大数据·数据仓库·hive·hadoop·spark·scala
云器科技4 天前
告别Spark?大数据架构的十字路口与技术抉择
大数据·架构·spark·lakehouse·数据湖仓