HiveQL的一些技巧
随机抽样 有的时候我们需要从一张大表中随机抽取一定量的样本供分析,Hive中提供了一个rand()函数,我们就利用这个来实现随机抽样。 思路如下: 对于表中每行均附加一个随机的整数,然后再以该整数进行orderBy即可得。 例如下面这个 selectvt.user_nick,vt.vidxfrom( selectuser_nick,cast(rand()*100000asint)asvidx froms_mc_xcard_userwherept='20120808000000' orderbyvidxlimit10000 )vtorderbyvt.vidxlimit100 处理复杂的数据结构 如果我们希望将复杂的数据结构存储在Hive表中,可以使用Json字符串这种东东来承载。Hive中提供了一个get_json_object的函数供json解析;这个函数里面的第二个参数比较令人费解,不过官方文档还算是清楚。 另外hive还提供了array,struct, map等数据结构,貌似目前功能很少,不建议使用。 行列转置 比如有一张这样的表: uid int mydata array 1...