SparkSQL和Spark常用语句

Spark SQL 常用语句

读取数据

scala

val df = spark.read.option("header", "true").csv("path/to/csvfile.csv")

val df = spark.read.parquet("path/to/parquetfile.parquet")

val df = spark.read.json("path/to/jsonfile.json")

展示数据

scala

df.show()

df.show(5) // 展示前5条记录

打印模式(Schema)

scala

df.printSchema()

选择列

scala

df.select("column1", "column2").show()

df.select("column1", "column2" + 1).show()

过滤数据

scala

df.filter($"column1" > 100).show()

df.filter("column1 > 100").show()

分组和聚合

scala

df.groupBy("column1").avg("column2").show()

df.groupBy("column1").agg(Max("column2"), Sum("column3")).show()

排序

scala

df.orderBy($"column1".desc).show()

df.orderBy("column1", "column2".asc).show()

重命名列

scala

df.withColumnRenamed("oldName", "newName").show()

添加新列

scala

df.withColumn("newColumn", "column1" + "column2").show()

删除列

scala

df.drop("column1").show()

SQL 查询

scala

df.createOrReplaceTempView("table_name")

spark.sql("SELECT * FROM table_name WHERE column1 > 100").show()

连接(Join)

scala

val df1 = ...

val df2 = ...

df1.join(df2, df1("id") === df2("id")).show()

df1.join(df2, Seq("id")).show() // 适用于相同列名的简单连接

写入数据

scala

df.write.option("header", "true").csv("path/to/output.csv")

df.write.parquet("path/to/output.parquet")

Spark 常用语句(Spark Core)

初始化 SparkConf 和 SparkContext

scala

val conf = new SparkConf().setAppName("AppName").setMaster("local[*]")

val sc = new SparkContext(conf)

读取数据

scala

val data = sc.textFile("path/to/textfile.txt")

展示数据

scala

data.take(10).foreach(println)

映射(Map)

scala

val mappedData = data.map(line => line.split(",")(0))

过滤(Filter)

scala

val filteredData = data.filter(line => line.contains("keyword"))

flatMap

scala

val flatMappedData = data.flatMap(line => line.split(" "))

行动操作(例如:collect, count, reduce)

scala

data.collect()

data.count()

val reducedData = data.reduce(_ + _)

键值对操作

scala

val pairs = data.map(line => (line.split(",")(0), line.split(",")(1)))

val groupedByKey = pairs.groupByKey()

val reducedByKey = pairs.reduceByKey(_ + _)

排序

scala

val sortedData = data.sortBy(line => line.length)

联合(Union)

scala

val rdd1 = ...

val rdd2 = ...

val unionedRDD = rdd1.union(rdd2)

缓存(Cache)

scala

data.cache()

保存数据

scala

data.saveAsTextFile("path/to/output")

相关推荐
Wise玩转AI20 分钟前
Day 27|智能体的 UI 与用户交互层
人工智能·python·ui·ai·chatgpt·ai智能体
s***46981 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
赞奇科技Xsuperzone1 小时前
【首发】DGX Spark 三机互连跑 Qwen3-235B-A22B-FP8!
大数据·分布式·spark
runepic1 小时前
Python + PostgreSQL 批量图片分发脚本:分类、去重、断点续拷贝
服务器·数据库·python·postgresql
codists1 小时前
2025年11月文章一览
python
生而为虫2 小时前
31.Python语言进阶
python·scrapy·django·flask·fastapi·pygame·tornado
言之。2 小时前
Claude Code 实用开发手册
python
计算机毕设小月哥2 小时前
【Hadoop+Spark+python毕设】中国租房信息可视化分析系统、计算机毕业设计、包括数据爬取、Spark、数据分析、数据可视化、Hadoop
后端·python·mysql
2***c4352 小时前
Redis——使用 python 操作 redis 之从 hmse 迁移到 hset
数据库·redis·python
二川bro3 小时前
模型部署实战:Python结合ONNX与TensorRT
开发语言·python