在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