这里写目录标题
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()