hive高频使用的拼接函数及“避坑”

这篇具有很好参考价值的文章主要介绍了hive高频使用的拼接函数及“避坑”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hive高频使用的拼接函数及“避坑”

说到拼接函数应用场景和使用频次还是非常高,比如一个员工在公司充当多个角色,我们在底层存数的时候往往是多行,但是应用的时候我们通常会只需要一行,角色字段进行拼接,这样join其他表的时候呢也不会造成数据被重复引用计算。hive高频使用的拼接函数及“避坑”,SQL,hive,hadoop,数据仓库

1、拼接多个字符串concat_null(…)

hive高频使用的拼接函数及“避坑”,SQL,hive,hadoop,数据仓库从上图中的说明中我们可以看到,在应用场景中,通常使用concat_null(…)防止由于有null存在导致的拼接异常。

2. 用分隔符拼接多个字符串concat_ws(…)

hive高频使用的拼接函数及“避坑”,SQL,hive,hadoop,数据仓库需要注意的是concat_ws(…)可以直接处理掉null,而且如果将sep分割符使用’'(空值),则功能和concat_null(…)一样。

3、collect_set、collect_list实现列转行

hive高频使用的拼接函数及“避坑”,SQL,hive,hadoop,数据仓库由于collect_set在实现列转行的时候进行了去重处理,自然实际应用中应用的也会更多。

4、“避坑” null和非字符串字段

由于在实际生产环境中,我们所使用的引擎有所不同,兼容性也不同。有时候NULL和非字符串字段在查询时也会出现问题。文章来源地址https://www.toymoban.com/news/detail-646225.html

1、通常我们可以把null进行替换。if(字段名 is null,‘’,字段名)

2、非字符串转化为字符串 cast(字段名 as string)

`SELECT  id,     concat_ws(',',collect_set(         cast(if(角色 is null,'',角色) as string)         )) AS `角色`    
      -- 将每个id对应多个的角色去重组合放到一行,并使用英文','分隔角色   
FROM emp   WHERE dt = '20230618'   GROUP BY 1   `

到了这里,关于hive高频使用的拼接函数及“避坑”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL使用技巧(4.1)Hive日期时间函数

    常用的格式化(format)标识符: 本章节每一行代码后都有运算说明和执行结果样例,例如 - - 返回当前系统日期 yyyy-MM-dd, 【2023-04-01】 原生hive中不支持 now() 的写法,经过加工的工具(TDWTDH)可能支持,不绝对。 unix_timestamp() 也会返回一个时间戳,但并不是系统当前时间的时间

    2024年02月12日
    浏览(44)
  • Sql 函数传递参数 字符串拼接

    使用场景 一个计算价格的函数,多个存储过程调用,因业务需求经常要新增参数,避免修改函数时程序执行存储过程报错,将多个参数拼接为一个字符串传递

    2024年02月10日
    浏览(46)
  • Hive SQL 中ARRAY或MAP类型数据处理:lateral view explode()/posexplode()——行转列函数

    前言:在对表数据进行批量处理过程中,常常碰上某个字段是一个array或者map形式的字段,一列数据的该字段信息同时存在多个值,当我们需要取出该数组中的每一个值实现一一对应关系的时候,可以考虑使用lateral view explode()/posexplode() 进行处理。 一、提要:explode()本身是

    2024年02月04日
    浏览(48)
  • 44、Flink之module模块介绍及使用示例和Flink SQL使用hive内置函数及自定义函数详细示例--网上有些说法好像是错误的

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月09日
    浏览(43)
  • 【大数据Hive】Hive 窗口函数使用详解

    目录 一、前言 二、hive 窗口函数概述 2.1 聚合函数与窗口函数差别 2.1.1 创建一张表

    2024年02月11日
    浏览(38)
  • Hive Sql 大全(hive函数,hive表)

    本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一、DDL语句(数据定义语句): 对数据库的操作:包含创建、修改数据库 对数据表的操作:分为内部表及外部表,分区表和分桶表 二、DQL语句(数据查询语句): 单表查询、关联查询 hive函数

    2024年02月19日
    浏览(46)
  • 大数据面试高频题目 - 深入解析 Hadoop:探索强大的HDFS存储系统

    在大数据面试中,深刻理解 Hadoop 是取得成功的关键之一。以下是一些关于 Hadoop 的HDFS存储系统的高频面试题目以及解答思路和经验分享: 发起下载请求: 客户端创建分布式文件系统,向 NameNode 请求下载  user/warehouse/ss.avi  文件; 获取文件元数据:NameNode 返回目标文件的元

    2024年03月18日
    浏览(45)
  • Hive 中执行 SQL语句 报错 :FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.

    在命令输入 hive 启动后: 解决方案: **错误原因:**服务端未开启服务,在hive服务端使用命令:hive --service metastore 然后再启动hive , 就可以正常使用sql语句了。 **其他原因:**有的是mysql没有启动,下面有完整的hive 启动流程 启动hive 流程(很多问题往往是少了步骤导致的)

    2024年02月15日
    浏览(53)
  • Hive SQL 函数高阶应用场景

    HIVE作为数据仓库处理常用工具,如同RDBMS关系型数据库中标准SQL语法一样,Hive SQL也内置了不少系统函数,满足于用户在不同场景下的数据分析需求,以提高开发SQL数据分析的效率。 我们可以使用show functions查看当下版本支持的函数,并且可以通过describe function extended funcnam

    2024年02月06日
    浏览(74)
  • 基于hadoop下的使用map reduce分布式系统的高考高频词汇统计

    hadoop 课程设计报告 一、设计目的与要求 1 、设计目的 通过hadoop课程设计可以加深、巩固对本门专业课程理论知识的掌握。通过eclipse和hadoop来编写课设报告等方面的实践训练,筑牢编程基础,培养良好的逻辑思维能力,提高综合运用能力。同时也锻炼学生自我管理和自我发展

    2024年02月07日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包