@永恒之月
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上的文件下载到本地