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")

相关推荐
黑马水牛17 分钟前
Carla仿真系列:9_Carla 单目障碍物测距,四种方法原理与实测
经验分享·python·深度学习·计算机视觉·ros·传感器·carla仿真
Python私教1 小时前
多个项目怎么安全合并?适配层、双轨验证与可回滚切换
python·软件架构·系统迁移
船厂电气自动化ai大模型1 小时前
AI大模型与数学第42课:泰勒级数完整展开(神经网络近似核心)
人工智能·python·深度学习·算法·机器学习
刘新洲2 小时前
我以为 AI Agent 只是调模型,直到我亲手补上审批、Outbox 和故障恢复
python·agent·fastapi
qq_513728042 小时前
浏览器配置 + 文件上传 + 截图
python·selenium·测试工具·计算机外设
Fluxproxy2 小时前
Python请求玄学根治:彻底解决脚本间歇性超时、断连、假死问题
网络·python·安全
青 春 记 忆3 小时前
零基础入门Python15|关联、聚合、索引与事务:订单数据库
开发语言·python·后端开发
qq_513728044 小时前
Alert 原生弹窗处理
python
李可以量化4 小时前
Redis 从了解到精通(三)上:量化交易场景下的数据备份与安全配置
redis·python·安全·qmt·ptrade