前言
spark作为分布式计算框架,在工业界占据了比较主流的地位。spark同样也提供了DataFrame供用户使用。
本文介绍DataFrame的一些常用操作
操作
先来简单介绍主程序
json文件
{"name": "nian"}
{"name": "li","age": 34}
{"name": "qian","age": 24}
代码
scala> import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SparkSession
scala> val spark = SparkSession.builder().appName("parquet").master("local[*]").getOrCreate()
var df_testjson = spark.emptyDataFrame
# 读取json文件
scala> df_testjson = spark.read.json(s"/Users/test.json")
- show() 显示信息
scala> df_testjson.show()
+----+----+
| age|name|
+----+----+
|null|nian|
| 34| li|
| 24|qian|
+----+----+
- printSchema(),打印出DataFrame 的模式(Schema)信息
scala> df_testjson.printSchema()
root
|-- age: long (nullable = true)
|-- name: string (nullable = true)
- select(),选择部分列信息
scala> df_testjson.select("name").show()
+----+
|name|
+----+
|nian|
| li|
|qian|
scala> df_testjson.select(df_testjson("name").as("username")).show()
+--------+
|username|
+--------+
| nian|
| li|
| qian|
+--------+
- filter :条件查询
scala> df_testjson.filter("age > 24").show()
+---+----+
|age|name|
+---+----+
| 34| li|
+---+----+
- groupBy : 分组
scala> df_testjson.groupBy("age").count().show()
+----+-----+
| age|count|
+----+-----+
| 34| 1|
|null| 1|
| 24| 1|
+----+-----+
- orderBy :排序,默认升序,desc降序
scala> df_testjson.orderBy("age").show()
+----+----+
| age|name|
+----+----+
|null|nian|
| 24|qian|
| 34| li|
+----+----+