自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

辰采星

纵然生得好皮囊,腹内原来草莽 —> http://user.qzone.qq.com/346406002/main

  • 博客(22)
  • 收藏
  • 关注

原创 Ruby-Module初探

Ruby里有一种叫module的东西,他和我们比较熟知的Class有很多类似之处,同样是组合一堆常量、变量和方法的单元。

2015-11-18 21:01:32 1840

原创 Ruby-初印象

跟很多编程语言相比,Ruby是一名新秀了,加上Ruby生于日本,所以即使语言本身并无东亚文字的印记,但是资料还是相对较少。在接触Ruby的过程中,我感觉这门语言里拥有和许多脚本语言的印迹,觉得蛮有意思,所以摘录一些,算是一个笔记来。 动态类型:类似语言:Shell,AWK, PHP应用说明:无需声明变量类型,根据变量/对象被赋值或构建的类型,即可进行引用。动态类型有一个有趣的名字:

2014-12-13 00:07:02 709

原创 Hive.GROUPING SETS有BUG?

随着Hive 0.10版的发布,GROUPING SETS出现了,并提供了ROLL UP和CUBE这两个特殊场景的子句,真是喜闻乐见的特性啊。不过最近在写两个HQL查询脚本的时候,GROUPING SETS子句里出现的元素名称或表达式有形式上的限定呢!似乎和Java里switch...case的case子句对枚举值名称有一样的限制。

2014-04-27 17:08:01 6398 2

原创 Hive.分组排序和TOP

HQL中的order by子句执行的排序操作始终是全局的,我们有时候想要的却是分组排序,即按fieldA排序以后,然后针对fieldA的每个值所对应的fieldB和(或)fieldC排序,而不是像order by那样,针对所有fieldA的值对fieldB和(或)fieldC排序。

2014-04-16 18:09:53 19005 3

原创 Hive.GROUPING SETS的“陷阱”

HQL查询中,对GROUPING SETS出来的数据与其它数据进行连接操作时,需要小心处理数据过滤的问题。而且,需要注意的还有,grouping__id这个函数的返回值不是整型,是字符串。

2014-04-06 11:20:33 8549 1

原创 Hive.GROUPING SETS

如果说聚合函数(Simple UDAF / Generic UDAF)是HQL聚合数据查询或分析的中枢处理器,那GROUP BY可以说是聚合函数的神经了,GROUP BY收集和传递材料,然后交给聚合函数们去处理。这些材料的组织形式显得尤为重要,它们表达着分析者想要的观察维度或视角,管理着聚合函数们的操作对象。       而分析者经常想要在一次分析中从多个维度去获得分析数据,对包含多个维度或多

2014-03-30 11:45:36 28421 2

原创 Hive.WHERE子句的“陷阱”

前天遇到这样一个场景:       Hive数据仓库里有一个用户访问日志表my_table,这个表对日期字段date (String类型)进行了分区。此外,这个表还有一个字段page_id(Int类型),假定page_id = 9是一个特殊页面。        比如我现在要针对日期范围2014-03-17到2014-03-23内去查询每天的UV,并且需要排除对以上提到的特殊页面的统计。那我

2014-03-26 23:18:13 22768 4

原创 Hive.GROUP BY子句的“陷阱”

做SQL或类SQL查询工作,跟GROUP BY打交道太频繁了,使用人士应该都晓得:在SELECT子句中出现的字段或属性,如果不是在聚合函数中,那就必须要放到GROUP BY子句里面去,反过来,没有出现在GROUP BY子句中的字段或属性,只能在聚合函数中。。。。。。       有时候,我们也需要对一个字段/属性作处理,假设有这样一个场景:在Hive数据库里有表my_table,my_ta

2014-03-25 19:55:45 27113 9

原创 VI.技巧.鼠标请休息

在学校的时候,偶尔看网上的技术贴里说Linux Shell有多犀利,VI编辑器有多强大,虽然当时感觉听起来很厉害的样子,但是自己去玩了一下,看到那么多命令需要敲,那么多快捷键要记,还要对着并不赏心悦目的编辑窗口,玩两下就情不自禁地关闭它、放弃它了。       工作后不久,带我的师兄就和我说Linux的基础,尤其是Shell,经常是要用到的,加紧学学、练练;工作中,时不时要跑到Shell环境下

2014-03-09 17:17:52 1497

原创 Hive.LEFT SEMI JOIN子句

公司的数据仓库和离线数据分析是建立在Hadoop + Hive基础上的,现在的工作主要是数据分析,自然也就跟HQL查询经常打交道了。刚来公司几乎完全不懂数据库知识,神马结构化查询语言也只是听说而已,不过,这没关系,实际工作一来,学习起来还是很快~~        年前有一个同事叫帮忙查某个产品的月度留存UV这个数据,当时业务不熟,还去参照了一下别人是怎么定义留存用户这个指标的。。。然后根据自己

2014-03-09 15:51:43 10059

原创 链表排序

对无序的单链表,看起来好简单的样子,但是竟然没有看到过、也没有想到过这个问题,直到今天的一道面试题......矮油,一心想要冒泡,但是以我的临场反应速度...写正确才不正常呢!结果冒泡未成功,倒是冒了很多汗,笔试现场很火爆啊很怪异有木有!看来鄙人对电脑和编译环境的依赖程度严重啊!好嘛,马后炮嘛,贡上我的测试代码嘛        排序函数:link_node *sort_linklist

2012-09-18 21:36:55 789 2

原创 花样排序

看到标题,不要激动,我不是要讲一种新的排序算法,话说我现在也还不够能力去发现(发明?)一种新的算法,我只是要说出一种新的排序问题,而已。。。       问题描述如下:       请编程实现将输入自然数组中的数字按要求处理并放入到输出数组中       1.  偶数按从大到小排序       2.  奇数按从小到大排序       3.  将奇数和偶数按顺序间插后放入输出数组

2012-09-16 21:08:47 547

原创 字符串的“循环平移”和单词查找

1.  字符串“循环平移”:       输入一个字符串,由小写字母组成,把每个位置上的字母变成它的下一个字母,如a -> b,b -> c,z -> a;如果有连续相同的字母,第二次出现要平移两位,即aa -> bc;如果一个字母连续出现的次数多于两次,则第二次之后出现的都当成以第一次出现的处理方式处理,如eee -> fgf。void convert_neighbor(char *

2012-09-15 23:50:29 811

原创 [读书笔记]位图法

对于自然数序列,如果序列元素范围比较集中,那么位图法是一个巧妙的实现诸如排序和检索之类的工作的方法,再配合位逻辑运算的话,可以在时间和空间效率上都达到较好的水平。我们为了实现这个方法,首先构造一个位向量,然后通过定义以下三个基本的函数,再以序列元素值取操纵这些函数,从而完成所需功能。 #define SHIFT 3#define BMASK 0x7const int n = 10

2012-09-06 22:10:15 810

原创 [读书笔记]随机取样

1. 随机样本的产生:       给定两个整数m和n,其中m        一个比较明了的解法则是利用C++的标准模板库,利用类模板set的特性,可以这样来实现: void gensets(const int m,const int n){ set iset; srand((unsigned)time(0)); while(iset.size() < m) {

2012-09-06 13:46:44 673

原创 运算符之趣

       C/C++里面的运算符只是那个语言系统里面的一个基础小集合,但是作用却无可替代;因为它们是基础性的东西,所以看起来比较平淡,常常在运算符所操纵的类型需要小心谨慎的时候能够得到小心对待,在C++中也会因为需要运算符重载的情境而变得复杂。但是,个人赶脚,在普通应用中,运算符们有时候也像小精灵一样,有着令人耳目清新的生命力。       很多人的经验中,C/C++能够高效优雅地执

2012-08-28 22:01:28 470

原创 [读书笔记]编程好建议!

在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关紧要之处优化。先优化数据结构和算法,再优化执行代码。不要设计面面俱到、非常灵活的数据结构。如果原有的代码质量比较好,尽量复用它。但是不要修补很差劲的代码,应当重新编写。尽量使用标准库函数,不要“发明”已经存在的库函数。不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码。变量(指针、数组)被创建之后应当及时把它们初始化,以防止把未被初

2012-08-26 23:23:58 472

原创 Ubuntu双网卡驱动配置

在师兄们的张罗下,教研室配了两台服务器,然后需要各种部署,师兄就叫我帮忙打杂(但是我也对Linux技术性的东西知之甚少)。因为每台服务器有两片以太网卡,有一台服务器又装了Windows Server和Ubuntu Server双系统;在Ubuntu下,貌似只有一片网卡被正常驱动,问题就出来了:怎样令双网卡同时工作?使得一片网卡接入一个子网,另一片接入另一个子网。    网卡型号:Intel

2012-07-11 15:54:07 4754

原创 约瑟夫环的链表实现

在早前的日志中,我在C++下,用[标记+迭代]的方法实现了约瑟夫环,那个方法的数据结构简单,但是迭代过程所用变量会增长到一个较大的数,如果n和m比较大的话,就有溢出的危险。现在,参考一下百度百科,我们用循环链表来重新实现之;虽然链表结构稍显复杂,且需要更多的存储空间,指针操作时也比较容易出错,但是这样的实现能够消除前面提到的方法的缺陷。       两种实现,呈现出来,作对比用。 #i

2012-05-30 00:44:17 706

原创 堆排序

1964年,J.willioms和Robert W.Floyd提出了一种改进的树形选择排序——堆排序。只需要一个记录大小的辅助空间,每个待排序记录仅占一个单元的存储空间。      动态内存分配里面也有堆的概念,但是彼堆非此堆,我刚开始果断把它们混淆了,经过几番对比,才在经验里把它们区分开来——噢,排序里用的堆是酱紫的:用一棵完全二叉树来形容的话,是说任意非终端结点的关键字不小于(大根堆)

2012-05-08 10:47:31 1155 2

原创 除模传奇

你没看走眼,我也没有打错字,标题就是除模传奇;作为一个星迷,用这样一个标题来包装日志,是天经地义的事。但是,标题只是这篇日志的表面现象,其实日志的真正身份还是两个字——编码:优雅的计算机除法、优雅的计算机取模。    《编程之美》的开胃题目【让CPU占有率曲线听你指挥】里要画正弦曲线,那果断要有取模运算的在场啊;还有【中国象棋将帅问题】,取模运算也华丽现身。对了,今年华为编程赛初赛的第一个题目

2012-05-03 21:00:51 627

原创 我要编程

华为编程比赛,我顺利落榜,经过短暂的失落感之后,我很快又回来coding世界了!请收了我吧,请允许我一步一步走下去,请理解我初期的蜗牛似的行进脚步,我会创造越来越靠谱的正值加速度的。    河畔水人很多,牛人也不少,但这不是我泡汤的理由,主要还是自己真心太水了。3个题摆在我面前,不要说两个钟头coding三个,就是只把第二个拿来我c,两个钟头也未必能办妥,所以。。。哈哈,华为GG,这一次你刷掉

2012-05-03 20:48:46 885 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除