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

相关推荐
醒过来摸鱼11 分钟前
Java classloader
java·开发语言·python
superman超哥13 分钟前
仓颉语言中元组的使用:深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
小鸡吃米…17 分钟前
Python - 继承
开发语言·python
祁思妙想1 小时前
Python中的FastAPI框架的设计特点和性能优势
开发语言·python·fastapi
Dingdangcat861 小时前
反恐精英角色识别与定位-基于改进的boxinst_r101_fpn_ms-90k_coco模型实现
python
世界唯一最大变量1 小时前
利用自定义积分公式,目前可以求出所有1元方程和1元积分的近似值
python
写代码的【黑咖啡】1 小时前
深入理解 Python 中的模块(Module)
开发语言·python
爱笑的眼睛113 小时前
超越 `cross_val_score`:深度解析Scikit-learn交叉验证API的架构、技巧与陷阱
java·人工智能·python·ai
smj2302_796826524 小时前
解决leetcode第3782题交替删除操作后最后剩下的整数
python·算法·leetcode
gCode Teacher 格码致知4 小时前
Python基础教学:Python 3中的字符串在解释运行时的内存编码表示-由Deepseek产生
python·内存编码