【原创】hive/mysq 字典表多字段替换事实表多字段

多个字段关联同一张字典表-查询SQL SELECT a.id, a.company_id, d.company_name, a.type, b.dictdata_value, a.`name`, a.url, a.`status`, c.dictdata_value FROM project_url a LEFT JOIN dictionary b ON a.type = b.dict_value AND ... 阅读详情

数据详情:

事实表:其中多个字段是字典code。

字典表:两列,字典code、字典value。

需求:

现在将事实表的字典code转换成字典value。

案例数据准备:

CREATE TABLE test_value (
  id int,
  k1 varchar(20) DEFAULT NULL,
  k2 varchar(20) DEFAULT NULL,
  k3 varchar(20) DEFAULT NULL
);
CREATE TABLE test_key_value (
  ky varchar(20) DEFAULT NULL,
  val varchar(20) DEFAULT NULL
);

insert into test_value values (1,'a','b','c');
insert into test_value values (2,'d','e','f');
insert into test_value values (3,'g','h','i'); 

insert into test_key_value values ('a','1');
insert into test_key_value values ('b','2');
insert into test_key_value values ('c','3');
insert into test_key_value values ('d','4');
insert into test_key_value values ('e','5');
insert into test_key_value values ('f','6');
insert into test_key_value values ('g','7');
insert into test_key_value values ('h','8');
insert into test_key_value values ('i','9');

实现逻辑:

select id
      ,max(case when k.k1= v.ky then v.val end) v1
      ,max(case when k.k2= v.ky then v.val end) v2
      ,max(case when k.k3= v.ky then v.val end) v3
from test_value k
left join test_key_value v
on (k.k1=v.ky or k.k2=v.ky or k.k3 = v.ky)
group by id

PS:原创博客,转载请注明出处。

HIVE表读数据并转成dict 1. 从HIVE表读数据并转成dict from pyspark import SparkContext from pyspark.sql import HiveContext,SparkSession sc = SparkContext() sql_context = HiveContext(sc) sql_data = sqlContext.sql("SELECT key,value1,value2,value3 from db.table") sql_data_rdd = sql_data.rdd. 阅读详情

相关推荐

在 STM32CubeIDE 中针对 STM32F407 移植 ThreadX

在 STM32CubeIDE 中针对 STM32F407 移植 ThreadX,不依赖盗版破解的Keil MDK、IAR等软件。

wangyuewu08的博客 3374

hive中多个字段_求最大最小值

需求: 需要在字段:mje_fore_qty、mjy_fore_qty找出最大值和最小值 思考: hive中是有max()和min()函数的 但是,那是用在求某一列字段的最大值/最小值的,很明显在这里是不能派上用场的~ 那么,既然现在是多个字段,那能不能把它们塞到一个字段去呢?然后再用上最大值/最小值方法 嗯哼,哦豁,儿豁,这个思路好像可以(=_=) 这不就是数组的概念嘛 解决: ,sort_array(array(CAST(t1.MJE_FORE_QTY as int),CAST(t2.MJY_

qq_38294275的博客 4717

从萤石云到GB28181:海康4G摄像机接入第三方平台的曲折之路

本文深入探讨了海康4G摄像机接入第三方平台时遇到的协议冲突问题,特别是GB28181与萤石云服务的互斥性。通过技术分析揭示了4G模块的定向流量限制和协议栈资源竞争等核心问题,并提供了有线接入测试和萤石云API二次开发等解决方案。最后总结了设备选型的关键参数和协议兼容性检查清单,为安防监控系统集成提供实用指导。

mango的博客 993

hive sql求多个字段的最小值和最大值的办法

1. 准备数据表test2 create table test2( a int, b int, c int, d int, e int); 2. 准备2条数据 insert into table test2 values(5,1,3,8,6); insert into table test2 values(6,2,5,11,9); 查询显示如下: 3. 现在要求出a,b,c,d,e 5...

硅谷工具人 1840

Ubuntu 22.04 LTS下Xenomai 3.3实时内核配置全攻略(附常见错误排查)

本文详细介绍了在Ubuntu 22.04 LTS系统上配置Xenomai 3.3实时内核的完整流程,包括环境准备、内核补丁应用、编译优化及常见错误排查。特别针对工业自动化和机器人控制场景,提供了性能优化建议和故障解决方案,帮助开发者实现毫秒级精度的实时任务处理。

weixin_29268385的博客 464

IsaacLab从入门到精通(二) 导入自定义机器人

IsaacLab系列第二讲,导入自定义的机器人及设置

DejaWu33的博客 8466

hive的行列转换进阶之字段名与字段值的互相转换,str_to_map函数应用

本文列举在一些特殊需求下,比如**需要把多行数据根据某一列的字段值转化为字段名的多行转一行的需求**,或者把**字段名转化为字段值的一行转多行的需求**

无知是恶 5283

UNet改进(24):注意力机制-从基础原理到高级融合策略

本文系统探讨了如何通过引入各类注意力机制增强UNet在医学图像分割中的性能。文章分为基础篇、进阶篇和高级篇三个层级:基础篇介绍了时序注意力、可变形注意力、分层注意力等8种基础机制;进阶篇提出了5种混合注意力设计;高级篇则探讨了全局+局部+多尺度等复杂组合机制。实验表明,这些注意力模块在心脏MRI、肺部感染等任务中能提升2-15%的分割精度。文章还提供了硬件适配建议和完整实现代码,为研究者提供了全面的技术参考。未来方向包括NAS优化、量子注意力等前沿探索,为UNet在医疗影像等领域的应用革新提供了理论指导。

2501_91516851的博客 764

走进大数据丨 Hive常见函数

Hive中常见的SQL函数显示HOST地址select parse_url('地址','HOST')实例: select parse_url('h...

ItStar 482

Python爬虫零基础入门【第九章:实战项目教学·第17节】内容指纹去重:URL 变体/重复正文的识别!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 824

2、OTA/gm - C滤波器的架构与设计

本文深入探讨了OTA/gm-C滤波器的两种主要设计方法:基于LC梯形网络的设计与多环反馈(MLF)结构。前者包括元件替代法和信号模拟法,分别通过电感替代或电路方程模拟实现低敏感度滤波器;后者通过积分器级联与反馈网络合成全极点或含任意传输零点的传递函数。文中详细分析了不同结构如IFLF和LF的反馈矩阵、传递函数及性能差异,指出LF结构在敏感度、噪声和整体性能上的优势。同时比较了各类方法的优缺点及适用场景,为高频连续时间集成电路滤波器的设计提供了系统性指导。

fanta的博客 137

hive replace替换多个_Hive新增字段(column)后,旧分区无法更新数据问题

遇到的问题: 今天给一个hive表增加一个新字段,使用如下语句alter table industry_db.product add columns(industry_id string comment ‘行业id);hive数据库表,显示了新增加的字段,我以为添加成功。但如果hive数据表p_date="20200306" 已经有旧的分区 的industry_id将为空且无法更新,即便i...

weixin_39736007的博客 1263

手机银行应用架构设计

网上银行借助互联网、移动通信网络等技术向客户提供金融服务,易受到通讯层面的安全威胁,金融机构应从通讯协议、安全认证、通信链路安全等层面,采取措施有效应对相关风险。网上银行系统服务器端提供网上银行应用服务和核心业务处理功能,金融机构应充分利用物理环境、通信网络、计算环境等领域的防护技术,在攻击者和受保护的资源间建立多道严密的安全防线。 网上银行除直接向用户提供金融服务外,也可能与外部机构开展业务合作。在网上银行系统设计、开发、部署和运营过程中,应充分考虑外部机构的系统可能存在的安全风险,并针对各类风险进行有效

银行信息系统应用架构详解 4830

HIVE元数据表/数据字典

HIVE元数据表/数据字典 0人收藏此文章,我要收藏 表名 说明 BUCKETING_COLS Hive表CLUSTERED BY字段信息(字段名,字段序号) COLUMNS Hive表字段信息(字段注释,字段名,字段类型,字段序号) DBS ...

weixin_30699463的博客 642

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

hive类型转换

一、hive类型之间的转换 1)隐式转换 (1)可以由小的类型转换为大的类型,比如从int到bigint,byte到int,int, 到string 2)整形,float 和 string都可以转换为double 3)boolean类型不可以转换为任何类型(boolean为:true和false) 2)显式转换 使用cast操作将数据类型进行转换 比如 cast(‘1’ AS INT) 把字符串转换为整数1,如果cast转换为类型失败会返回 NULL(hive表中某个字段不存在时,也为NULL)。 一些特

qq_44463295的博客 9079

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Hive修改derby为mysql数据库

一、概述 hive可以管理hdfs上的文件,用表的形式来管理文件数据。而表名、表里有哪些字段,字段类型、哪张表存在哪个数据下等这些表信息,称之为hive的元数据信息 默认情况下,hive的元数据信息不是存在hdfs上的,而是存在hive自带的derby关系型数据库里的 Hive安装完成之后,通常都需要替换元数据库,目前Hive只支持derby和mysql两种元数据库,需要将元数据库替换为MySQ...

Arno的博客 1478

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别

概述Mysql数据库replace与replace into都是经常会用到的功能;replace其实是做了一次update操作,而不是先delete再insert;而replace into其实与insert into很相像,但对于replace into,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。repla...

weixin_39859909的博客 796

关联查询,将主表中多个字段中的值 与 字典表 进行映射替换。

select t.cg_code,t.cg_name,t.zyly,d.dic_name as cg_type,d2.dic_name as trzj,d3.dic_name as xmly,d4.dic_name as cgsp, t.start_time,t.end_time,t.tzhsq,t.gbnf||'年' as gbnf,t.key_word,d5.dic_name...

dfgver6661的博客 1404

SQL多表查询优化 高效率SQL语句 11条原则

这个功能大大地提高了SQL的执行性能并节省了内存的使用:我们发现,单表数据的统计比多表统计的速度完全是两个概念.单表统计可能只要0.02秒,但是2张表联合统计就可能要几十表了.这是因为Oracle只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询..数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,

4204

第四章 关联映射和优化

               数据库表与表之间是有关联关系的, 需要在Mybatis的映射文件中把它描述出来,然后才能查询 数据库 -- 创建表空间 create tablespace dataspace datafile'F:\\dataspace.dbf' size 100M; commit; -- 创建用户 create user mjsw identified by mjsw de...

墨渐生微的博客 484

数据库大数据量的优化方案

在系统开发的初期以及使用的初期,一般不会太过于在意数据库的设计以及sql语句的优化,这就会导致系统有可能在日积月累的海量数据下越来越慢直至崩溃,所以以后在系统 数据库设计之初完备的数据库模型的设计是必须的。 优化数据库方案 对于数据库的的优化此处给出三种优化方案: 1.优化现有mysql数据库 优点:不影响现有业务,源程序不需要修改代码,成本最低 缺点:有优化瓶颈,数据量过亿就无法继续支撑相应的业务 2.升级数据库类型,换一种100%兼容mysql的数据库 优点:不影响现有业务,源程序不需要修改代码,你几

zhiyikeji的博客 1万+

sql连接多个字典表优化

涉及到太多子查询关联字典表了,而查询数据量有太大,没办法必须优化一下!在没有优化时,这条sql会查询出一万条,仅仅只是join了一张表,但是没有使用索引。查询时间花费:10.002ms,13327行数据。

hikktn的博客 1069

利用pandas映射替换两个字典中的映射值

在公司处理报表,中英文映射表与数值表替换 import pandas as pd data = { "a":"值一", "b":"值二", "c":"值三", "f":"值四" } data_map = { "a": 1, "b": 1, "c": 2, "d": 3 } pd...

weixin_30847865的博客 1579

java中的数据库格式(插入时间、runner获取count(*)值)

java 插入时间格式 Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");//可以方便地修改日期格式 String newdata = dateFormat.format(now); String sql = "insert into yd_czzl(zlbh,yqbh,bmdm,czzl,yjsj) VALUES(?,?,?,?,to_date(?,'yyyy-mm-dd

Resurrected_Eagle的博客 1060

hive如何生成数据字典

一、连接hive元数据库 执行下面sql即可 -- 查看hive里表和字段字典信息 -- 如果是用create table 的方式建的表,这里是查不到的。 -- 建的表必须要有表注释,否则查不出来。 select d.name as db_name -- 数据库名 ,c.tbl_name -- 表名 ,e.param_value as tbl_name_desc -- 表中文注释 ,a.integer_idx as column

LookDreamGo的博客 3584
上一篇: 【Kimball维度建模】+【阿里巴巴中台—OneData实施】
下一篇: 【开窗】取最近直播标题和直播时长
DM_Source
博客等级 码龄9年 33粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值