设为首页 加入收藏

TOP

sparksql创建dataframes
2015-11-21 01:27:25 来源: 作者: 【 】 浏览:0
Tags:sparksql 创建 dataframes
?

Table of Contents

1. spark sql2. SQLContext2.1. sql context是spark sql的所有功能入口点2.2. 通过spark context创建sql context2.3. hive context功能上多于sql context,未来sql context也会增加功能3. DataFrames3.1. 功能3.2. 创建DataFrames3.3. DSL

1 spark sql

是spark的一个模块处理结构化数据提供了DataFrames作为 编程的抽象层同时也是一个分布式sql查询引擎可以从hive中读取数据

2 SQLContext

2.1 sql context是spark sql的所有功能入口点

2.2 通过spark context创建sql context

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

注意,上面的val sc: …其实不需要写,因为启动spark-shell的时候有这么一个提示, 所以直接用就好。

Spark context available as sc.

2.3 hive context功能上多于sql context,未来sql context也会增加功能

不过由于我对hive不感兴趣,不会创建hive context

3 DataFrames

3.1 功能

分布式数据集合列的方式组织理解为关系 数据库的表可以从结构化文件,hive表,外部数据库或者RDD构造

3.2 创建DataFrames

通过SQLContext创建DataFrames,可以从外部文件,hive表或者RDD来创建。 为了测试本地文件,启动spark-shell的时候不要用–master连接spark master, 否则会提示找不到本地文件。 而如果想访问hdfs文件,启动spark-shell的时候要用–master。

scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@5d9ac1ff

scala> val df = sqlContext.read.json("/home/smile/people.json")
df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]

scala> df.printSchema()
df.printSchema()
root
 |-- age: long (nullable = true)
 |-- name: string (nullable = true)

scala> df.show()
df.show()
+---+----+
|age|name|
+---+----+
| 38|Dean|
+---+----+

3.3 DSL

DataFrames提供了DSL方面对结构化数据进行操作,都是些函数,比如select, df, printSchema, show, groupBy, filter等。

scala> df.select("name").show()
+----+
|name|
+----+
|Dean|
+----+
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MongoDB初探-下载安装 下一篇MongoDB 2.6.4版本操作笔记

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: