在spark dataFrame数据结构里面使用sql语句查询数据
(因为是RDD和dataFrame数据是只读的,所以不能做修改,删除操作。)
首先将文本数据转换为DataFrame数据格式
有两种将RDD转换为Dataframe的形式
- 利用反射机制推断RDD模式
- 使用编程方式定义RDD模式
这里直接读取json文件并转换为dataFrame结构
from pyspark.sql import SparkSession
spark=SparkSession.builder.getOrCreate()
df = spark.read.json("/user/hadoop/data.json")
df.createOrReplaceTempView("data")
dataDF = spark.sql("select title from data where title like '%中国%'").show()
- 查看data表中的所有title
select * from data
- 查看data表中,title包含字符串‘中国’
select title from data where title like '%中国%'
- 查看data表中,country 的值(去重)
SELECT DISTINCT country FROM data
- 查看平均值
spark.sql("select AVG(id) from data").show()
- 累加
spark.sql("select COUNT(id) from data").show()
- 统计有多少行数据
spark.sql("select COUNT(*) AS nums from data").show()
- 查看id=1的第一条数据的name值
spark.sql("select FIRST(name) AS name from data where id=1").show()
类似使用的函数:LAST MAX MIN SUM