Spark学习之 Spark SQL( 一 )

本文是作者学习记录,先创建people.json文件,上传到HDFS文件系统指定目录,查看文件完整性,接着启动Spark Shell并执行代码,最后进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感谢大牛的系列文章, 本文只是本人学习过程的记录, 首先向大神致敬!

https://blog.youkuaiyun.com/lovehuangjiaju/article/details/48661847

1.创建文件people.json

{"name":"Michael", "age":27}
{"name":"Andy",    "age":30}
{"name":"Justin",  "age":19}

2.上传到HDFS文件系统  目录位置:  /data/people.json

hdfs dfs -put ./people.json /data

3.在HDFS中查看文件是否完整,如下

[root@hd-02 ~]# hdfs dfs -cat /data/people.json
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
[root@hd-02 ~]# 

 

4.启动Spark Shell , 并执行如下代码:

bin/spark-shell
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
scala> val df = sqlContext.read.json("hdfs://hd-01:9000/data/people.json")

5.测试

 

scala> df.show
+----+-------+
| age|   name|
+----+-------+
|null|Michael|
|  30|   Andy|
|  19| Justin|
+----+-------+

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

scala> df.select("name").show
+-------+
|   name|
+-------+
|Michael|
|   Andy|
| Justin|
+-------+

scala> df.filter( df("age") > 21  ).show
+---+----+
|age|name|
+---+----+
| 30|Andy|
+---+----+
scala> df.registerTempTable("people")

scala> val teenagers = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19")
teenagers: org.apache.spark.sql.DataFrame = [name: string, age: bigint]

scala> teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
Name: Justin


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值