hive 配置文件以及join中null值的处理「建议收藏」

hive 配置文件以及join中null值的处理

大家好,又见面了,我是全栈君。

一、Hive的參数设置

1.  三种设定方式:配置文件

·   用户自己定义配置文件:$HIVE_CONF_DIR/hive-site.xml

·   默认配置文件:$HIVE_CONF_DIR/hive-default.xml

用户自己定义配置会覆盖默认配置。

另外,Hive也会读入Hadoop的配置,由于Hive是作为Hadoop的client启动的,Hadoop的配置文件包含

·   $HADOOP_CONF_DIR/hive-site.xml

·   $HADOOP_CONF_DIR/hive-default.xml

Hive的配置会覆盖Hadoop的配置。

配置文件的设定对本机启动的全部Hive进程都有效。

2.  命令行參数 ,

bin/hive -hiveconf hive.root.logger=INFO,console

这一设定对本次启动的Session(对于Server方式启动。则是全部请求的Sessions)有效。

3.  參数声明

set mapred.reduce.tasks=100;

这一设定的作用域也是Session级的

二、使用hive一些注意的地方

1.  Hive使用的字符集默认是UTF-8。hive中没有转换字符编码的这样的函数

hive.exec.compress.output 这个參数, 默认是 false。

可是非常多时候貌似要单独显式设置一遍。否则会对结果做压缩的,假设你的这个文件后面还要在hadoop下直接操作, 那么就不能压缩了

2.  Join中处理null值的语义差别

这里的特殊逻辑指的是,Hive的Join中,作为Joinkey的字段比較。null=null是有意义的。且返回值为true。检查下面查询:

select u.uid, count(u.uid)

from t_weblog l join t_user u on (l.uid = u.uid) groupby u.uid;

查询中,t_weblog表中uid为空的记录将和t_user表中uid为空的记录做连接。即l.uid = u.uid=null成立。

假设须要与标准一致的语义。我们须要改写查询手动过滤null值的情况:

select u.uid, count(u.uid)

from t_weblog l join t_user u

on (l.uid = u.uid and l.uid is not null and u.uid is notnull)

group by u.uid;

实践中,这一语义差别也是常常导致数据倾斜的原因之中的一个。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115574.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 计算机如何修改任务管理器,win7如何更改任务管理器快捷键_win7更改任务管理器快捷键的教程…

    计算机如何修改任务管理器,win7如何更改任务管理器快捷键_win7更改任务管理器快捷键的教程…我们在打开任务管理器的时候,通常是CTRL+ALT+DEL就可以快速打开,不过有许多用户装完win7系统之后,发现任务管理器快捷键变成了Ctrl+Shift+Esc,这让用户们用着很不习惯,其实我们也可以自己手动更改快捷键,现在给大家带来win7更改任务管理器快捷键的教程。具体步骤如下:1、在“开始”菜单的搜索框输入指令gpedit.msc,回车打开Win7系统的组策略编辑器。2、在组策略编辑器里…

  • spss logistic回归分析结果如何分析

    spss logistic回归分析结果如何分析spsslogistic回归分析结果如何分析如何用spss17.0进行二元和多元logistic回归分析一、二元logistic回归分析二元logistic回归分析的前提为因变量是可以转化为0、1的二分变量,如:死亡或者生存,男性或者女性,有或无,Yes或No,是或否的情况。下面以医学中不同类型脑梗塞与年龄和性别之间的相互关系来进行二元logistic回归分析。(一…

    2022年10月29日
  • 《前端运维》一、Linux基础–04Shell变量

    这一篇文章,我们就要开始学习正式的Shell语言部分的内容。那在开始之前,我们回忆一下,javascript语言,大体都包含了哪些内容?比如数据类型(对象、字符串、数值),数据结构(对象、数组)、运算

  • 展频技术是如何搞定时钟信号的辐射的呢_辐射电磁波的频率

    展频技术是如何搞定时钟信号的辐射的呢_辐射电磁波的频率先前我们说了说:为什么时钟信号比数据信号更容易引起辐射超标?为什么时钟信号比数据信号更容易引起辐射超标?并且做了试验,如果认真看过的话,就会明白,周期性的信号是窄带频谱,特定的频率的幅值会很高,这对认证测试来说非常的不利。而一般时钟信号都是周期信号,这在电路中是少不了的。有没有什么办法,改造下时钟的频谱,同时又不影响功能呢?答案是有的,那就是展频技术。展频技术的应用展频技术经常用于解决辐射问题,比如我们前面说的音频功放,需要接LC滤波器。就有的厂家通过展频技术,推出不需要LC滤波器.

    2022年10月25日
  • Android Studio gardle 配置 ndk 指定 ABI: abiFilters 详解

    Android Studio gardle 配置 ndk 指定 ABI: abiFilters 详解一、ABI是什么ABI是ApplicationBinaryInterface的缩写。不同Android手机使用不同的CPU,因此支持不同的指令集。CPU与指令集的每种组合都有其自己的应用二进制界面(或ABI)。ABI可以非常精确地定义应用的机器代码在运行时如何与系统交互。您必须为应用要使用的每个CPU架构指定ABI。典型的ABI包含以下信息:机…

  • 人工智能 猴子摘香蕉问题[通俗易懂]

    人工智能 猴子摘香蕉问题[通俗易懂]人工智能猴子摘香蕉问题1.定义描述环境状态的谓词。AT(x,w):x在w处,个体域:x{monkey},w{a,b,c,box};HOLD(x,t):x手中拿着t,个体域:t{box,banana};EMPTY(x):x手中是空的;ON(t,y):t在y处,个体域:y{b,c};BOX(u):u是箱子,个体域:u{box};BANANA(v):v是香蕉,个体域:v{banana};2.初始状态AT(monkey,a):猴子在a处EMPTY(monkey):猴子手中是空的O

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号