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

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"
queryJDBC 自定义查询语句"(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 优化吞吐量
http://www.dtcms.com/a/566313.html

相关文章:

  • 国内免费建站网站wordpress教程视频教程
  • 网站logo显示新闻头条最新
  • MongoDB基本使用(包含工具类)
  • 和15岁女儿做很舒服网站网页设计软件排名
  • 高防IP真能100%防御DDoS攻击吗
  • 新建网站怎么做优化广州建设工程交易中心改版
  • 申请免费网站公司长春网站建设哪家好
  • SQL SERVER 索引
  • 深入浅出 Java 虚拟机之基础原理
  • 【数维杯赛中助攻+1,英文普刊知网检索+1】
  • 发布 php 微网站网站建设销售提成
  • 哈尔滨网站建设赚钱么自己做的视频网站上传电影
  • 建设电子商务网站前的市场分析合肥有哪些做网站的公司
  • 免费cms建站微网站开发平台 知乎
  • css学习盒模型:
  • 杭州网站建设出 名wordpress生成静态 mip
  • js 实现深拷贝
  • 素材设计做的好的网站有哪些帝国 网站搬家
  • 商城手机网站设计做阿里巴巴网站图片尺寸
  • 小说网站seo排名怎么做自己做个网站需要什么
  • 计算机网络R2025秋(TYUT)【计算机网络】第5章 运输层
  • 广州站八个字网站中新颖的功能
  • 梳理了音视频开发核心知识点
  • dedecms怎么把一个网站的文章导出导到另一个站里中国工程建设交易信息网站
  • 计算机网络8
  • 霍山有没有做建网站的商洛市城乡建设规划局网站
  • 厦门seo网站管理网站建设好后怎样形成app
  • Vue 生成 PDF 完整教程
  • 【C++日志库】启程者团队开源:轻量级高性能VoyLog日志库完全指南
  • 【Dify】详细介绍+功能说明