Spark练习题

@永恒之月

hdfs基础操作

删除数据hdfs上的数据

删除文件

hadoop fs -rm /user/root/test.txt

删除目录

hadoop fs -rm -f -r /user/root/test.txt

查看hdfs上的文件

hadoop fs -ls /user/root

练习题1.0

1、将文件上传到hdfs上

[root@hadoop05lyq50 opt]# hdfs dfs -put result_bigdata.txt /user/root

[root@hadoop05lyq50 opt]# hdfs dfs -put result_math.txt /user/root

2、导入到变量(textFile)(创建RDD)

大数据

var bigdata=sc.textFile("/user/root/result_bigdata.txt")

bigdata.collect

数学

var math=sc.textFile("/user/root/result_math.txt")

math.collect

学生

var student=sc.textFile("/user/root/student.txt")

student.collect

3、用\t分割开(splint)

var L_bigdata=bigdata.map(x=>x.split("\t"))             #大数据

L_bigdata.collect

var L_math=math.map(x=>x.split("\t"))                      #数学

L_math.collect

var L_student=student.map(x=>x.split("\t"))                       #学生

L_student.collect

4、把数组转换为元组(提取某几组的数据)(map)

var u_bigdata=L_bigdata.map(x=>(x(0),x(1),x(2).toInt))          #大数据

var u_math=L_math.map(x=>(x(0),x(1),x(2).toInt))                  #大数据

var u_student=L_student.map(x=>(x(0),x(1)))                        #学生

5、合并两个RDD(数学和大数据)(union)

var sum=u_bigdata.union(u_math)                        #大数据和数学

sum.collect

6、用成绩来倒序排序数据(sortBy)

var by_sum=sum.sortBy(x=>x._3,false)            

7、获取前3条数据

var data_3=by_sum.take(3)

scala> var data_3=by_sum.take(3) data_3: Array[(String, String, Int)] = Array((1007,大数据基础,100), (1003,应用数学,100), (1004,应用数学,100))            #输出结果

练习题2.0

1、上传到hdfs上

[root@hadoop05lyq50 opt]# hdfs dfs -put users.txt /user/root

2、将文件数据导入到变量中去,并且用“\t”分隔(创建RDD)

var users=sc.textFile("/user/root/users.txt").map(x=>x.split("\t"))

users.collect

3、将数组的数据转化为元组,并提前第二位的数据

var u_users=users.map(x=>(x(1)))

u_users.collect

4、将元组转换为键值对的形式

var users_1=u_users.map(x=>(x,1))

users_1.collect

 

5、统计各个地区数量

var data_TJ=users_1.reduceByKey((x,y)=>x+y)

data_TJ.collect

 

6、将统计数据以文件形式上传到hdfs上去

data_TJ.saveAsTextFile("/user/root/data_TJ.txt")

 

7、将hdfs上的文件下载到本地

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值