Spark DataFrames 介绍

x33g5p2x  于2021-03-14 发布在 Spark  
字(1.0k)|赞(0)|评价(0)|浏览(370)

DataFrames 官方解释其为一个由多个有含义和名字的列组织数据的分布式集合, 其的表现形式比较类同与关系型数据库的表概念.

一般来说,都是优先使用DataFrames而不直接使用RDD,因为DataFrames会优化你的执行计划,而RDD则是忠实的按照你代码生成执行计划,并且spark sql 中提供很多方法便利地从多种数据源生成DataFrames.

如下即为从json文件中生成DataFrames以及一些DataFrames的基本使用:

val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

// 创建DataFrames
val df = sqlContext.read.json("examples/src/main/resources/people.json")

// 显示数据内容
df.show()
// age  name
// null Michael
// 30   Andy
// 19   Justin

// 打印DataFrames的结构
df.printSchema()
// root
// |-- age: long (nullable = true)
// |-- name: string (nullable = true)

// 获取name列的数据
df.select("name").show()
// name
// Michael
// Andy
// Justin

// 获取name和age列的数据,但是age的每个值都+1
df.select(df("name"), df("age") + 1).show()
// name    (age + 1)
// Michael null
// Andy    31
// Justin  20

// 获取age大于21的数据
df.filter(df("age") > 21).show()
// age name
// 30  Andy

// 查询age的分组计数情况
df.groupBy("age").count().show()
// age  count
// null 1
// 19   1
// 30   1

spark sql也支持隐式将RDD转化为DataFrame,只需加入如下代码:

// this is used to implicitly convert an RDD to a DataFrame.
import sqlContext.implicits._

相关文章

微信公众号

最新文章

更多