摸鱼大数据——Hive函数10-12

2024-06-02 14:12
文章标签 数据 函数 hive 摸鱼

本文主要是介绍摸鱼大数据——Hive函数10-12,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

10、堆内存错误

报错:

Error while processing statement: FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. Java heap space

解决方案: 在node1上面操作即可

方式1: 找到/export/server/hive/conf/hive-env.sh,添加以下内容

    export HADOOP_HEAPSIZE=2048

方式2: 找到hive-site.xml添加以下内容

    <!-- hive堆内存--><property><name>hive.heapsize</name><value>2048</value></property>

修改完以后,先把Hadoop和Hive进程全部关掉。先启动Hadoop,再启动Hive。

11、JSON数据处理

 get_json_object:解析json内容优点:能够解析嵌套的json缺点:每次只能解析一个json_tuple:优点:每次能够同时解析多个字段缺点:不能解析嵌套的json。如果需要解析嵌套的,那么只能一层层解析

示例:

create database day09;
use day09;
​
/*get_json_object:解析json内容优点:能够解析嵌套的json缺点:每次只能解析一个*/selectget_json_object('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}','$.name') as name,get_json_object('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}','$.addr.province') as province;
​
/*json_tuple:优点:每次能够同时解析多个字段缺点:不能解析嵌套的json。如果需要解析嵌套的,那么只能一层层解析*/
​
selectjson_tuple('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}','name','age','addr');
​
selectjson_tuple('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}','name','age','addr') as (name,age,addr);
​
​
with tmp_1 as (select json_tuple('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}', 'addr') as addr
)
select get_json_object(addr,'$.province') from tmp_1;
​
with tmp_1 as (select json_tuple('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}', 'addr') as addr
)
select json_tuple(addr,'province') from tmp_1;

12、炸裂函数

把一个容器的多个数据炸裂出单独展示: explode(字段名称)
​
炸裂函数配合侧视图使用如下
格式:select 字段,侧视图中字段名称 from 原始表名lateral view UDTF函数名称(原始表名中的字段) 侧视图别名 as 侧视图中字段名称1,侧视图中字段名称解释: 1- 侧视图别名、侧视图中字段名称自己取名字2- 侧视图别名前面不能有as3- 侧视图里面只需要定义字段名称即可,不要设置数据类型

简单示例:

use day09;
​
-- 基础使用
select array(1,2,3,4,5);
select explode(array(1,2,3,4,5));
​
select map('a',1,'b',2,'c',3);
select explode(map('a',1,'b',2,'c',3));

实践:

-- NBA例子
create table nba(team_name string,year_str array<string>
)row format delimited fields terminated by ','
collection items terminated by '|';
​
-- 加载导入数据
load data inpath '/dir/The_NBA_Championship.txt' into table nba;
​
-- 验证数据
select * from nba;
​
-- 炸裂
select explode(year_str) as `year` from nba;
​
-- UDTF函数一般会和侧视图一起出现
/*侧视图语法select 字段,侧视图中字段名称 from 原始表名lateral view UDTF函数名称(原始表名中的字段) 侧视图别名 as 侧视图中字段名称1,侧视图中字段名称2....*/
select team_name,year from nba
lateral view explode(year_str) years as year;
​
​
-- 侧视图和json_tuple配合使用
with tmp_1 as (select json_tuple('{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}', 'addr') as addr
)
select json_tuple(addr,'province') from tmp_1;
​
with tmp_1 as (select 1 as id,'{"name":"zhangshan","age":18,"addr":{"province":"广东省","city":"广州市"}}' as info
)
select id,name,age from tmp_1
lateral view json_tuple(info,'name','age') info_view as name,age

这篇关于摸鱼大数据——Hive函数10-12的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1024198

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.