`
scholers
  • 浏览: 619590 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hadoop之旅--HIVE的一些技巧

 
阅读更多
(一)字段名称重复
错误提示:Ambiguous column reference property_id
表示property_id字段名称有重复的,如下面的写法:
         cast(category_level as string) as property_id,
          cast(property_id as string) as property_id,
         cast(0 as string)   as  ipv,
         cast(0 as string)   as  ipvuv,

(二)union all字段名称一致
UNION ALL必须要让union的各个表保持字段名称一样
案例:
         cast(category_level as string) as category_id,
          cast(property_id as string) as property_id,
         cast(0 as string)   as  ipv,
         cast(0 as string)   as  ipvuv,
是可以的
但是
         cast(category_level as string) ,
          cast(property_id as string) ,
         cast(0 as string)   as  ipv,
         cast(0 as string)   as  ipvuv,
会报错说字段不匹配

(三)UNION ALL 嵌套错误
错误信息如下:
Hive history file=/tmp/weique.lqf/hive_job_log_weique.lqf_201209041729_460174_1017312942.txt
FAILED: Hive Internal Error: java.lang.NullPointerException(null)
java.lang.NullPointerException
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.generateErrorMessage(SemanticAnalyzer.java:435)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genUnionPlan(SemanticAnalyzer.java:5802)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6163)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6160)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:6178)
at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:6953)
at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:137)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:294)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:392)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:177)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:257)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:389)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:165)
at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)

over
说明了你的unino all里面有嵌套的union all,这个不知道为什么出现问题,
建议的写法是创建一张临时表用union all,然后union all临时表。



(四)HIVE 中null的处理
hive里面null也是一个字符串,长度为4,在用sum等统计汇总的时候,会得到不一样的结果,
建议用下面的语句,在你建表之后将null和''进行等值处理。
ALTER TABLE tmall_data_fdi_search_query_cat_qp_temp_1 SET SERDEPROPERTIES ('serialization.null.format'='');
这样null和‘’等价

(五)exist in的写法
left semi join是0.5.0以上版本的特性。
可以替代in
SELECT a.key, a.val FROM a LEFT SEMI JOIN b on (a.key = b.key);
分享到:
评论

相关推荐

    hadoop 入门

    InfoQ 提供的相关资料如"InfoQ Hadoop基本流程与应用开发"、"InfoQ 分布式计算开源框架Hadoop介绍"和"InfoQ Hadoop中的集群配置和使用技巧"将帮助你深入学习这些主题,为你的Hadoop之旅提供坚实的理论基础和实践指导...

    52498-Hadoop平台搭建与应用-任务实施操作指南手册.rar

    2. **Hadoop环境搭建**:在开始Hadoop之旅前,你需要准备一个支持Hadoop的操作系统,通常是Linux。指南将指导你如何安装Java环境,配置Hadoop的环境变量,以及分发和启动Hadoop集群。 3. **HDFS**:HDFS是Hadoop的...

    hadoop数据分析

    《Hadoop数据分析》一书是O'Reilly出版社的力作,专为那些希望深入理解如何利用Hadoop进行大规模数据处理和分析的专业...通过阅读本书,你可以系统地学习如何在Hadoop平台上进行高效的数据分析,开启大数据探索之旅。

    hadoop study(适合新手学习)

    对于新手来说,Hadoop学习之旅通常包括安装基础组件、掌握Hive、HBase、Spark等工具的使用。Hive提供了一个数据仓库架构,使得Hadoop能够使用SQL查询处理大量结构化数据。HBase则是一个非关系型、分布式、可扩展的...

    Hadoop入门手册

    【Hadoop入门手册】是一本专为初学者设计的指南,旨在帮助读者快速掌握Hadoop这一分布式计算框架的基础知识和核心概念。Hadoop是Apache软件基金会的一个开源项目,它的出现...开始你的Hadoop之旅,探索大数据的世界吧!

    hadoop权威指南第4版(中文版)

    总之,《Hadoop权威指南》第四版中文版是一本全面覆盖Hadoop及其生态系统的教材,无论你是初学者还是有经验的开发者,都能从中获得宝贵的洞见和实践指导,为你的大数据之旅提供坚实的理论和技术支持。

    scala 学习

    Scala语言是大数据领域中非常重要的编程语言之一,它不仅被广泛应用于各种复杂的大数据分析框架中,也因为...通过上面提及的资源,读者可以开始他们的Scala学习之旅,并逐步深入到Scala编程和大数据应用开发的世界中。

    《sql入门使用与高级使用篇》

    《SQL入门使用与高级使用篇》是一份全面探讨SQL语言的资源,涵盖了从基础到进阶的诸多知识点。SQL,全称Structured Query Language,即结构化查询语言,是用于管理和处理关系数据库...祝你在SQL的学习之旅上一路顺利!

Global site tag (gtag.js) - Google Analytics