sparkSQL学习记录之一

Spark SQL是一个为了结构化数据处理的模块,并且提供了一个叫做DataFrames的编程抽象,它也能够作为分布式SQL查询引擎。

DataFrames是一个分布式的由指定的列组成的数据集合,它相当于关系数据库中的表,或者R/Python中的数据框架,但是能够进行更多的优化。Data能够被各种wide array源所构造,如,结构化的数据文件,hive中表,外部数据库,或者存在的RDDs。

DataFrame API可以支持JAVA,SCALA,Pthon,下面的程序都是以scala来编写。

我们可以通过spark-shell来进行下面的例子的运行。

所有函数的入口点便是SQLContext 个类,或者它的某个子类。但是要创建一个基本的SQLContext,我们需要一个SparkContext。

使用shell,sc会已经被创建,此时我们需要使用该语句来创建一个sqlContext。

valsqlContext=neworg.apache.spark.sql.SQLContext(sc)

下面我们根据官方的例子来演示下DataFrame的操作。

val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
// Create the DataFrame
val df = sqlContext.jsonFile("examples/src/main/resources/people.json")
// Show the content of the DataFrame
df.show()
// Print the schema in a tree format
df.printSchema()
// Select only the "name" column
df.select("name").show()
// Select everybody, but increment the age by 1
df.select("name", df("age") + 1).show()
// Select people older than 21
df.filter(df("name") > 21).show()
// Count people by age
df.groupBy("age").count().show()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值