大数据系列文章:​​👉 目录 👈​​

大数据随记 —— DataFrame 数据操作_数据操作



文章目录

  • ​​一、DataFrame SQL 数据操作​​
  • ​​二、DataFrame API 数据操作​​



DataFrame 数据操作有两种操作数据的方式,一种是使用 DataFrame所支持的 SQL 语法进行数据操作,另一种使用 DataFrame 提供的相关 API 对数据进行操作。

一、DataFrame SQL 数据操作

通过 SQLContext 的 sql 方法,即可使用我们熟悉的 SQL 语法进行数据操作。

package sparksql  

import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}

object DataFrameSQL {

def main(args: Array[String]): Unit = {

val sparkConf = new SparkConf().setMaster("local[2]").setAppName("DataFrameSQL")
val sc = new SparkContext(sparkConf)

// 创建 SQLContext 对象
val sqlContext = new SQLContext(sc)

// 从 JSON 中创建 DataFrame 对象
val df = sqlContext.read.json("resources/json/people.json")

// 使用 SQLContext 的 sql 方法对数据进行操作 ✨✨
sqlContext.sql("select * from people where age>21")

df.show()
sc.stop()
}}

二、DataFrame API 数据操作

DataFrame 也提供了特定的 API 让我们操作 DataFrame 中的数据,也被称为 DSL(Domain-Specific Language,即领域特定语言)。使用 DSL 语法风格就不必去创建临时视图了。

package sparksql  

import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}

object DataFrameAPI {

def main(args: Array[String]): Unit = {

val sparkConf = new SparkConf().setMaster("local[2]").setAppName("DataFrameAPI")
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)

// 使用 SQLContext 将 JSON 文件转成 DataFrame
val df = sqlContext.read.json("resources/json/people.json")

// 使用 show 方法将 DataFrame 的内容输出 ✨✨
df.show()

// 使用 printSchema 方法输出 DataFrame 的 Scheme 信息 ✨✨
df.printSchema()

// 使用 select 方法来选择所需要的字段,这里则选择 name 字段 ✨✨
df.select("name").show()

// 使用 select 方法选择所需要的字段,并为 age 字段加 1 ✨✨
df.select(df("name"),df("age")+1).show()

// 使用 filter 方法完成条件过滤,这里过滤 age > 21 的数据并打印 ✨✨
df.filter(df("age")>21).show()

// 使用 groupBy 方法进行分组,求分组后的总数 ✨✨
df.groupBy("age").count().show()

sc.stop()

}
}

大数据随记 —— DataFrame 数据操作_分布式_02