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上的文件下载到本地