使用 spark-shell 读取文件 /data/bigfiles/employee.json 中的内容,完成以下任务: 查询所有数据 查询所有数据,并去除重复的数据 查询所有数据,打印时去除 id 字段 筛选 age>20 的记录 将数据按 name 分组 将数据按 name 升序排列 取出前 3 行数据 查询所有记录的 name 列,并为其取别名为 username 查询年龄 age 的平均值 查询年龄 age 的最小值
时间: 2024-02-16 13:02:52 浏览: 210
可以使用以下代码来解决你的问题:
1. 查询所有数据
```scala
// 导入 SparkSession
import org.apache.spark.sql.SparkSession
// 创建 SparkSession
val spark = SparkSession.builder()
.appName("Read Employee JSON")
.master("local[*]")
.getOrCreate()
// 读取 JSON 文件
val employee = spark.read.json("/data/bigfiles/employee.json")
// 查询所有数据
employee.show()
```
2. 查询所有数据,并去除重复的数据
```scala
// 去除重复数据
employee.distinct().show()
```
3. 查询所有数据,打印时去除 id 字段
```scala
// 去除 id 字段
employee.drop("id").show()
```
4. 筛选 age > 20 的记录
```scala
// 筛选 age > 20 的记录
employee.filter("age > 20").show()
```
5. 将数据按 name 分组
```scala
// 按 name 分组
employee.groupBy("name").count().show()
```
6. 将数据按 name 升序排列
```scala
// 按 name 升序排列
employee.sort("name").show()
```
7. 取出前 3 行数据
```scala
// 取出前 3 行数据
employee.limit(3).show()
```
8. 查询所有记录的 name 列,并为其取别名为 username
```scala
// 查询所有记录的 name 列,并为其取别名为 username
employee.select($"name".alias("username")).show()
```
9. 查询年龄 age 的平均值
```scala
// 查询年龄 age 的平均值
employee.agg(avg("age")).show()
```
10. 查询年龄 age 的最小值
```scala
// 查询年龄 age 的最小值
employee.agg(min("age")).show()
```
需要注意的是,上述代码中的 JSON 文件路径为 /data/bigfiles/employee.json,如果你的 JSON 文件路径不同,需要做相应的修改。
阅读全文