如下将下列JSON格式为employee.json 格式 { "id":1 , "name":" Ella" , "age":36 } { "id":2, "name":"Bob","age":29 } { "id":3 , "name":"Jack","age":29 } { "id":4 , "name":"Jim","age":28 } { "id":4 , "name":"Jim","age":28 } { "id":5 , "name":"Damon" } { "id":5 , "name":"Damon" } 为employee.json创建DataFrame,并利用PySpark完成下列操作(DSL或SQL均可): 查询所有数据; 查询所有数据,并去除重复的数据; 查询所有数据,打印时去除id字段; 筛选出age>30的记录; 将数据按age分组; 将数据按name升序排列; 取出前3行数据; 查询所有记录的name列,并为其取别名为username; 查询年龄age的平均值; 查询年龄age的最小值。
时间: 2023-07-08 21:49:38 浏览: 124
您好,可以利用以下代码来完成您的需求:
```python
# 导入必要的包
from pyspark.sql import SparkSession
from pyspark.sql.functions import avg, min
# 创建SparkSession
spark = SparkSession.builder.appName("employee").getOrCreate()
# 读取JSON文件并创建DataFrame
df = spark.read.json("employee.json")
# 查询所有数据
df.show()
# 查询所有数据,并去除重复的数据
df.distinct().show()
# 查询所有数据,打印时去除id字段
df.drop("id").show()
# 筛选出age>30的记录
df.filter("age > 30").show()
# 将数据按age分组
df.groupBy("age").count().show()
# 将数据按name升序排列
df.orderBy("name").show()
# 取出前3行数据
df.limit(3).show()
# 查询所有记录的name列,并为其取别名为username
df.select("name").withColumnRenamed("name", "username").show()
# 查询年龄age的平均值
df.select(avg("age")).show()
# 查询年龄age的最小值
df.select(min("age")).show()
```
请注意,这里假设您的JSON文件已经放在了当前工作目录下,并命名为employee.json。另外,如果您想使用SQL语句来完成这些操作,可以先将DataFrame注册为一个临时表,然后使用Spark SQL来查询。
阅读全文