摘要:hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的数据为相同类型,例如,假如array A中元素['a','b','c'],则A[1]的值为'b'Struct使用 阅读全文
黑马程序员--正则表达式
2013-07-17 11:02 by java20130722, 205 阅读, 0 推荐, 收藏,
摘要:---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。但是符号定义越多,正则表达式就会越长,阅读性就会越差。正则表达式的构造摘要: (1)字符类 [abc] a、b或c(简单类) [^abc] 任何字符,除了a、b或c(否定) [a-zA-Z] a到z或A到Z,两头的字母包括在内(范围) [a-d[m... 阅读全文
[置顶] 读源码练内功(一):guava之eventbus
2013-07-16 23:14 by java20130722, 306 阅读, 0 推荐, 收藏,
摘要:现在如今眼目下,开源程序库越来越多,程序员们很多时候都不需要自己造轮子,就可以找到称心如意的开源库进行使用。虽然我们在使用各种各样的开源代码时,并不需要知道这些代码是如何实现的。但是了解它们的实现方法,不仅可以提升我们自己本身的编程能力和编程技巧,同时也为我们学习某一特定的技术点提供了可以模仿的例子。Guava简介如同boost之于c++,guava也几乎成为了java编程中不可或缺的一部分。guava中涵盖了很多有意思的东西,比如在java中使用函数式编程;新的数据结构,如bimap等等。总之,guava让写java程序成为一件更美好的事情。guava中还有很多很多有意思的东西,可以去gua 阅读全文
自定义Java Annotations实例以及用Java Reflection来解析自定义的Annotation
2013-07-16 18:17 by java20130722, 327 阅读, 0 推荐, 收藏,
摘要:转自 http://www.journaldev.com/721/java-annotations-tutorial-with-custom-annotation-example-and-parsing-using-reflectionJava程序员都知道,在Java世界里到处可见@Override, @Deprecated等等这些Annotations, 这些代码不仅不影响Java代码编译运行,还能对代码起到很好的解释作用。那么我们如何定义自己的Annotation呐? 接下来就是很好的例子!package com.journaldev.annotations; import java... 阅读全文
Solr之NamedList 简单介绍与实例解析
2013-07-16 01:44 by java20130722, 689 阅读, 0 推荐, 收藏,
摘要:大家都知道,Solr是一个基于Lucene高可配置的搜索服务器,大部分参数值以及相关优化等等都可以在solrconfig.xml中配置,那么就需要一个能够很快的进行解析和读取配置文件内容的数据结构,为此Solr提供了NamedList结构。 NamedList,一个有序的name/value容器,NamedList不像Map,他具有以下特点: 1、名字可以重复 2、NamedList中的element保持这有序状态 3、可以下标的形式访问Elements 4、name和value都可以为null NamedList中通过下边访问要快于通过name访问。 NamedList在org.apach. 阅读全文
Java中编写可变长参数的函数
2013-07-15 18:00 by java20130722, 239 阅读, 0 推荐, 收藏,
摘要:越来越多的Java库使用了可变长参数,不再需要加一个new Object[]那么别扭。那么如何自己实现一个这样的可变长函数呢?我们就以实现一个一长串的整数相加作为例子:变长参数是用T...标明,在函数体内,其实就是一个类型为T的数组,然后像操作数组那样进行变长参数就行了。例子:public class KMath { public static int add(int... args) { int result = 0; for (int arg : args) { result += arg; } ... 阅读全文
HIVE RCFile高效存储结构
2013-07-12 15:23 by java20130722, 268 阅读, 0 推荐, 收藏,
摘要:本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在 MapReduce环境下的大规模数据分析中扮演重要角色。Facebook曾在2010 ICDE(IEEE International Conference on Data Engineering)会议上介绍了数据仓库Hive。Hive存储海量数据在Hadoop系统中,提供了一套类数据库的数据存储和处理机制。它采用类 SQL语言对数据进行自动化管理和处理,经过语句解析和转换,最终生成基于Hadoop的MapReduce任务,通过执行这些任务完成数据处理。图1显 示了Hive数据仓库的系统结 阅读全文
hive中的bucket table
2013-07-12 15:14 by java20130722, 330 阅读, 0 推荐, 收藏,
摘要:当数据量比较大,我们需要更快的完成任务,多个map和reduce进程是唯一的选择。但是如果输入文件是一个的话,map任务只能启动一个。此时bucket table是个很好的选择,通过指定CLUSTERED的字段,将文件通过hash打散成多个小文件。create table sunwg_test11(id int,name string)CLUSTERED BY(id) SORTED BY(name) INTO 32 BUCKETSROW FORMAT DELIMITEDFIELDS TERMINATED BY ‘/t’;执行insert前不要忘记设置set hive.enforce.bucke 阅读全文
hive bucket
2013-07-12 15:13 by java20130722, 589 阅读, 0 推荐, 收藏,
摘要:BucketBuckets对指定列计算hash,根据hash值切分数据,目的是为了并行,每一个Bucket对应一个文件。将user列分散至32个bucket,首先对user列的值计算hash,对应hash值为0的HDFS目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash值为20的HDFS目录为:/wh/pvs/ds=20090801/ctry=US/part-00020。hive中table可以拆分成partition,table和partition可以通过‘CLUSTERED BY’进一步分bucket,bucket中的数据可以通过‘SORT BY 阅读全文
hive中的静态分区与动态分区
2013-07-12 12:42 by java20130722, 393 阅读, 0 推荐, 收藏,
摘要:hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partitioned by (stat_date string,province string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';这个例子中创建了stat_date和pr 阅读全文