在用spark读写hdfs数据时,有时候当前用户对要读写的hdfs路径没有权限,需要临时改变用户去读写hdfs,操作完后回到原来的用户。我们的hdfs是没有权限认证的,一开始通过下面代码的方式来实现。
初识Scala反射
我们知道,scala编译器会将scala代码编译成JVM字节码,编译过程中会擦除scala特有的一些类型信息,在scala-2.10以前,只能在scala中利用java的反射机制,但是通过java反射机制得到的是只是擦除后的类型信息,并不包括scala的一些特定类型信息。从scala-2.10起,scala实现了自己的反射机制,我们可以通过scala的反射机制得到scala的类型信息。scala反射包括运行时反射和编译时反射,本文主要阐述运行时反射的一些用法,方便scala开发人员参考,具体原理细节请查看官方文档。
博客重生
之前用wordpress搭建博客,买vps以及域名,自己管理维护主机,写了一段时间博客后,发现主机经常受到一些诸如垃圾邮件的攻击,然后被vps厂商强制关机,要求其开机要经过一系列的邮件申诉,后面机器恢复后,因为内存不够用(也可以说是银子不够)的原因,mysql经常挂,总是要去重启,管理起来特别费心。中途由于一段时间的懒惰,没码字了,vps空间到期忘了续费,机器被停了,数据也被清理了,所有的文章都没来得及备份,想想都特别惋惜,所幸通过外链引用找回部分文章,在这篇文章之前的所有文章都是以前wordpress站点搬过来的。
MLlib决策树与集成树
模型简介
决策树是一种常见的分类与回归机器学习算法,由于其模型表达性好,便于理解,并能取得较好的效果,而受到广泛的应用。下图是一个简单的决策树,决策树每个非叶子节点包含一个条件,对于具有连续值的特征,该条件为一个上界,如果实例对应的特征值小于该上界则被划分到左子节点,否则被划分到右子节点,对于具有离散值的特征,该条件为一个子集,如果实例对应的特征值属于该子集则被划分到左子节点,否则被划分到右子节点。如此下去,一个实例从根节点开始,不断地被划分,直到叶子节点。对于分类问题,叶子节点输出其类别,对于回归问题,叶子节点输出其分值或概率。
工作半年小感
毕业到现在满打满半年了,这半年里可以说是变化巨大,正所谓计划赶不上变化,深圳房价翻倍了,身体不行了…很多时候感慨毕业选择来深圳就是个错误,整个人变得尤其的浮躁。一切都是当年设定的预想过于理想化了,导致落差大,使得自己成天瞎浮想。然而自己对于工作的激情却一直没消退,而且更加地热爱它,像是处于一种享受被强奸的状态。下面简单讲讲自己入职半年的个人感受吧。