Hive中Group By的去重

在Hive的是用中,我们经常会有这种需求:

按照同一个id进行Group By,然后对另一个字段去重,例如下面得数据:
id pic
1 1.jpg
2 2.jpg
1 1.jpg
此时,是用DISTINCT或者2 col得Group By都是不行得,我们可以用这个UDAF:collect_set(col),它将对同一个group by 得key进行set去重后,转换为一个array。

再举一个例子,我们可以对pic进行去重,拼接:
SELECT id, CONCAT_W[......]

继续阅读

Python中getopt的使用(管理命令行参数)

转载自:http://blog.csdn.net/tianzhu123/article/details/7655499

python中 getopt 模块,该模块是专门用来处理命令行参数的。

函数getopt(args, shortopts, longopts = [])

参数args就是命令行传入的,在python中一般是sys.argv[1:]

参数分为长短两种:
shortopts 短格式 (-)
longopts 长格式(--)

例如下述,第1行是短,第[......]

继续阅读

Python中操作Excel 2000的xlsx文件(使用openpyxl)

在工作中,我们经常需要将数据导出成表格的形式。常见的cvs格式(使用逗号分隔),虽然生成简单,但难免存在以下问题:

1、需要对文本中的逗号进行转义,特别是当文本中需要保留逗号的时候,往往无能为力。

2、字符编码问题,对于Office的一些版本,直接打开utf8编码的cvs,可能会出现乱码。因此,依然需要将cvs另存为Excel格式,才能方便使用。

下面我们介绍开源模块openpyxl,它能够帮助我们在Python中,直接操作Excel 2000文件格式(xlsx)。

一、[......]

继续阅读

C++中,解析UTF-8字符的位置。

在C++的char*以及string中,使用的是字节流编码,即sizeof(char) == 1。

也就是说,C++是不去分字符的编码的。

而一个合法UTF8的字符长度可能为1~4位。

现在假设一串输入为UTF8编码,如何能准确的定位到每个UTF8字符的“CharPoint”,而不会错误的分割字符呢?

参考这个页面:http://www.nubaria.com/en/blog/?p=289

可以改造出下面的函数:
const unsigned char kFirs[......]

继续阅读