SparkSQL 方法集合文档

本文详细介绍了SparkSQL的各种操作,包括如何读取CSV、JSON、Parquet文件及JDBC数据库,数据处理如选择列、过滤、分组聚合、排序、去重、重命名列、转换数据类型和处理缺失值,以及数据输出到CSV、JSON、Parquet、ORC文件和不同类型的数据库(如MySQL、PostgreSQL、Oracle)及Kafka的写入方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SparkSQL 方法集合

本文档介绍了 SparkSQL 中常用的方法集合,包括数据读取、数据处理、数据写入等。

数据读取

读取 CSV 文件

val df = spark.read.format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("path/to/file.csv")

读取 JSON 文件

val df = spark.read.format("json")
  .option("inferSchema", "true")
  .load("path/to/file.json")

读取 Parquet 文件

val df = spark.read.format("parquet")
  .load("path/to/file.parquet")

读取 JDBC 数据库

val df = spark.read.format("jdbc")
  .option("url", "jdbc:mysql://localhost:3306/mydb")
  .option("dbtable", "mytable")
  .option("user", "myuser")
  .option("password", "mypassword")
  .load()

数据处理

选择列

val selectedDf = df.select("col1", "col2", "col3")

过滤数据

val filteredDf = df.filter($"col1" > 10 && $"col2" === "value")

分组聚合

val aggDf = df.groupBy("col1")
  .agg(sum("col2"), avg("col3"))

排序

val sortedDf = df.orderBy($"col1".desc)

去重

val distinctDf = df.distinct()

重命名列

val renamedDf = df.withColumnRenamed("oldColName", "newColName")

添加列

val addedDf = df.withColumn("newColName", $"col1" + $"col2")

删除列

val droppedDf = df.drop("col1", "col2")

转换数据类型

val typedDf = df.withColumn("col1", $"col1".cast(IntegerType))

处理缺失值

val filledDf = df.na.fill(0)

数据输出方法

本文介绍了SparkSQL中常用的数据输出方法集合,包括将数据输出到文件系统、数据库、Kafka等。

1. 写入CSV文件

df.write
  .format("csv")
  .option("header", "true")
  .save("path/to/file.csv")

2. 写入JSON文件

df.write
  .format("json")
  .save("path/to/file.json")

3. 写入Parquet文件

df.write
  .format("parquet")
  .save("path/to/file.parquet")

4. 写入ORC文件

df.write
  .format("orc")
  .save("path/to/file.orc")

5. 写入MySQL数据库

df.write
  .format("jdbc")
  .option("url", "jdbc:mysql://localhost:3306/mydb")
  .option("dbtable", "mytable")
  .option("user", "myuser")
  .option("password", "mypassword")
  .save()

6. 写入PostgreSQL数据库

df.write
  .format("jdbc")
  .option("url", "jdbc:postgresql://localhost:5432/mydb")
  .option("dbtable", "mytable")
  .option("user", "myuser")
  .option("password", "mypassword")
  .save()

7. 写入Oracle数据库

df.write
  .format("jdbc")
  .option("url", "jdbc:oracle:thin:@localhost:1521:mydb")
  .option("dbtable", "mytable")
  .option("user", "myuser")
  .option("password", "mypassword")
  .save()

8. 将数据输出到Kafka

df.write
  .format("kafka")
  .option("kafka.bootstrap.servers", "localhost:9092")
  .option("topic", "mytopic")
  .save()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AcerMr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值