Spark练习题

简介: 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

image.png


5、统计各个地区数量

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

image.png


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

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

image.png


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

image.png

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
Java Scala
Scala学习--day02---控制流、“九层妖塔—杨辉三角”
Scala学习--day02---控制流、“九层妖塔—杨辉三角”
54 1
|
4月前
|
分布式计算 资源调度 测试技术
一道Spark练习题
一道Spark练习题
28 0
|
4月前
Scala100道练习题答案
Scala100道练习题答案
17 0
|
4月前
|
分布式计算 Java Hadoop
Scala练习题104道
Scala练习题104道
40 0
|
11月前
|
SQL 分布式计算 Java
Spark入门以及wordcount案例代码
Spark入门以及wordcount案例代码
|
SQL 分布式计算 资源调度
spark 几道面试题
spark 几道面试题
|
消息中间件 SQL 机器学习/深度学习
Spark面试题(二)
Spark有哪两种算子?、Spark有哪些聚合类的算子,我们应该尽量避免什么类型的算子、如何从Kafka中获取数据、RDD创建有哪几种方式?、Spark并行度怎么设置比较合、Spark如何处理不能被序列化的对、collect功能是什么,其底层是怎么实现的、为什么Spark Application在没有获得足够的资源,job就开始执行了,可能会导致什么什么问题发生、map与flatMap的区别、Spark on Mesos中,什么是的粗粒度分配,什么是细粒度分配,各自的优点和缺点是什么、driver的功能是什么等等以下有答案。
281 0
|
存储 SQL 缓存
Spark面试题
spark的有几种部署模式,每种模式特点、Spark为什么比mapreduce快、简单说一下hadoop和spark的shuffle相同和差异、spark工作机制、spark的优化怎么做、数据本地性是在哪个环节确定的、RDD的弹性表现在哪几点、RDD有哪些缺陷、Spark的shuffle过程、 Spark的数据本地性有哪几种、Spark为什么要持久化,一般什么场景下要进行persist操作。
1170 0
Spark面试题
|
存储 SQL 分布式计算
Spark面试题(四)
Spark中的HashShufle的相关方面的问题及解析。
193 0
Spark面试题(四)
|
SQL 存储 分布式计算
「Spark从精通到重新入门(二)」Spark中不可不知的动态资源分配
资源是影响 Spark 应用执行效率的一个重要因素。Spark 应用中真正执行 task 的组件是 Executor,可以通过spark.executor.instances 指定 Spark 应用的 Executor 的数量。在运行过程中,无论 Executor上是否有 task 在执行,都会被一直占有直到此 Spark 应用结束。
554 0
「Spark从精通到重新入门(二)」Spark中不可不知的动态资源分配