3月总结
23年总结3月总结
[TOC]
一、知识点汇总
SparkSQL大数据训练部分
- 学习内容: DSL风格 ,任务书深度分析,行转列函数柯里化,
- 难点: 列转行函数柯里化
个人理解:
-
val dum: DataFrame = Seq(“1”).toDF(“dum”)
data.foldLeft(dum)((dumxx,d) => dumxx.withColumn(d._1,lit(d._2)))
.drop(“dum”)
.show(false)比如上面的这段函数,是大数据中典型的一个行转列的的代码,主要使用的foldLeft核心是函数柯里化,data数据是一个seq类型表两列数据。dum也是一个seq类型,但是是一列两行的,所以只要往seq中添加列就行了,使用柯里化。(dum)((dum,d) => dum.withColumn(d._1,lit(d._2)))这一段比较难理解,就是说两个参数dumxx和d,d就是data一行一行取的值,dumxx就是dum那个样例seq数据,withColumn便是往样例数据追加一列,因为样例数据没有叫d的第一列的的数据,所以d的第一列为列名,也就是列名为省份名字,值为lit,固定值,是d._2也就是数据该行的第二列,是次数。最后把样例seq数据删除就达到要求了。
Vue部分
-
学习内容:Vue路由 Vuex Vue3 Vue插槽
-
难点 Vuex 以及路由
个人理解:
- 我觉得这个Vuex就是实现了使用插件,代替了之前的全局事件总线以及组件件通讯,以及props这种不同组件之间的传输数据以及使用方法。应用中多个组件的共享状态进行集中式的管理,也是一种组件间通信的方式,且适用于任意组件间通信。基本使用也很简单,配置好store.js以及几个简单的方法,就能实现全局组件之前通讯,进阶版还可以使用模块化+命名空间实现,明确的数据分类,便于维护。
- Vue路由,路由我的理解其实就是一组key-value数据,key是路径,而value是访问该路径所使用的组件,通过router也就是路由器进行管理,使用也不难,下载好router插件,然后每个组件都有自己的$route属性,里面有路由信息,然后调用即可。一些基本的配置以及参数都不是很难理解,但是是vue的一个难点。
二、自我总结
-
这一个半月,学习的内容还是挺多的,把之前的vue学完了,也把自己的个人博客改版重新美化了。时间规划的话,感觉美化博客加vue差不多半个月,因为有些vue的内容在我搭博客的时候还有使用到挺多的,美化博客主要还是使用js以及css,在vue写js的时候,弄清楚js一些参数和语法什么的,还是相辅相成的。
-
其他的时间都是搞大数据,起初做题,因为要用本地的环境,出现了各种报错,修bug修了四五天,然后练了两套四月的题目吧,后面开始做7月,因为7月都是增量是比四月难很多,而且题目还是要逐字分析,有很多模糊不定的题目,要达到完美的要求,单单使用sql语句办到需要建立好几个临时表一题,这样显然是不太好的,在比赛环境下时间肯定来不及,所以花了几天时间。然后跟很多其他院校的同学进行了一些任务书的讨论,并相互学习代码,结合自己的风格,将自己的代码复用率大大提高, 自己原本代码风格使用情况是sql风格80%。这样有些处理列数据的时候,需要将列名都打出来,用DSL风格,也就是spark自带的一些对sql处理的函数,就可以大大减少sql语句重复率。因为抽取和清洗基本用3-4个方法就能全部写完,很多要求都是类似的,将数据处理的方法封装 ,设置需要改变的参数,这样整体代码看起来更规范,逻辑性以及可读性也更强。然后去把5套7月的电商任务书都做完了,和其他大数据参赛选手对7月任务书进行了讨论,现在基本没什么异议了,大概只有一两个,但是似乎是对结果的截图是没影响的,而且对指标计算也没影响,索性就直接按照讨论出来的最优处理了不死磕了。其他的时间基本都是在做算法题,因为是C组,加上主要的精力是在大数据部分,所以其实算法题练的不是很多,确实是基本没怎么练,一天就一两题的样子,还是希望蓝桥杯的时候题目都会做,能拿个让人满意的成绩吧。