- 博客(27)
- 收藏
- 关注
原创 Spark SQL 中对 Map 类型的操作函数
Spark SQL 提供丰富的 map 操作函数,包括创建 (map、map_from_arrays)、访问键值 (map_keys、map_values)、修改 (map_concat、transform_keys)、过滤 (map_filter)、检查 (map_contains_key)、以及高级操作 (explode、posexplode) 等,简化复杂键值对数据的处理和分析。
2025-01-20 16:57:42
810
原创 spark sql中对array数组类型操作函数列表
SparkSQL提供了丰富的array操作函数,可以满足创建、访问、修改、过滤、聚合等多种需求。无论是对数组进行基础操作(如访问元素、排序、去重),还是高级操作(如条件过滤、函数式编程),都可以轻松实现。通过熟练掌握这些函数,开发者可以高效地处理复杂的数组数据。
2025-01-20 16:18:17
1434
原创 Spark SQL中的from_json函数详解
from_json函数需要明确的模式定义(schema),以便将JSON字符串解析为结构化数据。from_json的options参数提供了灵活的JSON解析配置,适用于各种复杂或非标准的JSON数据场景。容错性控制:使用mode和。时间和日期解析:使用和dateFormat。非标准JSON支持:使用multiLine等。from_json是SparkSQL中处理JSON数据的核心工具,它的核心是通过指定的schema将JSON字符串解析为结构化数据。
2025-01-20 15:07:08
1327
原创 解析Hive中的嵌套JSON数组:方法与实践
本文详细讨论了在Hive中解析复杂的JSON数据结构,特别是包含嵌套数组的JSON格式。文章首先介绍了使用Hive内置函数如`get_json_object`和`json_tuple`进行简单JSON解析的方法。随后,针对更复杂的嵌套JSON数组,提出了两种高效的解析策略:一是通过正则表达式和特殊字符处理,二是利用内置解析器JsonSerde进行结构化数据转换。通过具体的SQL示例,文章展示了如何从复杂的JSON结构中提取关键信息,如会员编号、城市名称和公寓名称。最终,通过表格形式展示了解析结果,证明了所提
2024-10-10 11:45:28
1092
原创 深入理解 Hive SQL 中的 TRANSFORM 函数
本文详细介绍了 Hive SQL 中 TRANSFORM 函数的使用方法和应用场景。TRANSFORM 是一个强大的工具,用于在 SQL 查询中直接进行复杂的数据转换,或调用外部脚本进行自定义的数据处理。文章首先解释了 TRANSFORM 函数的基本用法,通过实例演示如何将销售物品列表中的每个项目提取出来并计算销售数量。接着,展示了如何使用 TRANSFORM 结合 regexp_replace 函数解决数组中的枚举值替换问题。最后,介绍了如何利用 TRANSFORM 调用外部 Python 脚本进行数据转
2024-09-26 10:39:47
1754
1
原创 SQL-开窗函数计算复购指标统计案例
复购指标计算:1、除用户是否归属复购外,复购指标统计,如金额、营收等2、不同复购周期的计算,7天,30天,60天,90天等等3、动态复购,用户每天起始往后的复购详情,又同归因
2022-06-20 17:59:02
1400
原创 实现开窗count distinct 历史累计截止日期去重统计
解决问题:hive中count(distinct ) over() 无法使用场景累计去除统计,实际经常使用到的场景比如会员每日历史累计消费,项目每日累计营收等。案例:数据准备:用户轨迹用户访问日志表 test_visit_tabcookieid(用户id) uvdate(访问时间) pagename(浏览页面) pv(访问次数)cookie1 2022-02-01 A_page 1cookie1 2022-02-01 B_page 2cookie1 2022-02-0..
2022-02-24 18:32:20
9489
原创 kudu介绍:为什么要使用?
前言近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUDU 都有着不可替代的地位。本文通过分析 KUDU 的设计, 试图解释为什么 KUDU 会被广泛应用于大数据领域,因为还没有研究过 KUDU 的代码,下面的介绍是根据 KUDU 的论文和网上的一些资料学习自己理解所得,如有不实之处,劳请指正。背景在 KUDU 之前,大数据主要以两种方式存储:静态数据:以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行
2021-12-19 17:27:02
1121
原创 kudu 使用限制说明
主键表创建后,主键不能修改。必须删除重建表指定新的主键 主键列必须在非主键列之前 主键列的值不能使用UPDATE函数修改。如果要修改主键的值只能删除该行重新插入,并且该操作无法保持原子性; 主键的类型不支持DOUBLE、FLOAT、BOOL,并且主键必须是非空的(NOT NULL); 不支持自动生成的主键(如自增列) 每行对应的主键存储单元(CELL)最大为16KB列MySQL中的部分数据类型,如DECIMAL, CHAR, VARCHAR, DATE, ARRAY等不支持; 数据类型
2021-12-07 13:37:06
754
原创 阿里巴巴大数据之路-元数据
元数据元数据概述元数据定义元数据( Metadata )是关于数据的数据打通了源数据、数据仓库、数据应用,记录了数据从产生到消费的全过程主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态及 ETL 的任务运行状态按用途分两类技术元数据技术元数据是存储关于数据仓库系统技术细节的数据,是用于开发和管理数据仓库使用的数据常见技术元数据类型分布式计算系统存储元数据理解为数据地图:如表、列、分区、责任人、生命周期等信息。分布式计算系
2021-11-16 22:17:07
1654
原创 presto连接kudu建表与查询方法
使用presto连接kudu查询引擎,在kudu中进行增删改查查询数据Apache Kudu 不支持模式,即表的命名空间。连接器可以选择通过表命名约定来模拟模默认行为(无模式模拟)默认情况下禁用模式模拟。在这种情况下,所有 Kudu 表都是default架构的一部分。例如, 如果目录和模式分别设置为和,则orders可以在 Presto 中查询名为 的 Kudu 表。SELECT * FROM kudu.default.orders、SELECT * FROM orders。表名
2021-11-15 19:47:24
4252
原创 阿里巴巴大数据之路-事实表设计
事实表设计事实表基础事实表特性通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量事实表中一条记录所表达的业务细节程度被称为粒度粒度两种表达方式一种是维度属性组合所表示的细节程度一种是所表示的具体业务含义作为度量业务过程的事实整型或浮点型的十进制数值可加性可加性事实是指可以按照与事实表关联的任意维度进行汇总半可加性可加性事实只能按照特定维度汇总,不能对所有维度汇总,如库存只能指定条件可加无法日期汇总不可加
2021-11-10 02:14:27
1739
原创 阿里巴巴大数据之路-维度设计
维度设计维度设计基础维度的基本概念维度是维度建模的基础和灵魂。将度量称为“事实” ,将环境描述为“维度”维度所包含的表示维度的列,称为维度属性查询约束条件分组和报表标签生成的基本来源据易用性的关键维度使用主键标识其唯一性代理键不具有业务含义的键一般用于处理缓慢变化维前台应用系统:商品ID代理键自然键具有业务含义的键数据仓库系统:商品ID自然键维度的基本设计方法选择维度或新建维度维度的唯一性确定主维表一般是 O
2021-10-27 00:03:34
1245
原创 阿里巴巴大数据之路-数据整合&管理体系
数据整合&管理体系OneDataOneData 即是阿里巴巴内部进行数据整合及管理的方法体系和工 具。阿里巴巴的大数据工程师在这一体系下,构建统一、规范、可共享 的全域数据体系,避免数据的冗余和重复建设,规避数据烟囱和不一致 性,充分发挥阿里巴巴在大数据海量、多样性方面的独特优势。借助这 一统一化数据整合及管理的方法体系,我们构建了阿里巴巴的数据公共 层,并可以帮助相似的大数据项目快速落地实现。下面重点介绍 OneData 体系和实施方法论。概述阿里巴巴集团大数据建设方法论的核心是 :从业务
2021-10-08 09:41:10
2021
原创 阿里巴巴大数据之路-大数据领域建模综述
阿里巴巴大数据之道-大数据领域建模综述为什么要数据建模?Linux 的创始人 Torvalds 有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据 结构和它们之间的关系。“数据建模的好处性能 :良好的数据模型能帮助我们快速查询所需要的数据,减少 数据的 110 吞吐。成本 : 良好的数据模型能极大地减少不必要的数据冗余,也能实 现计算结果复用,极大地降低大数据系统中的存储和计算成本。效率 :良好的数据模型能极大地改善用户使用数据的体验,提高 使用数据的效率。质
2021-10-01 16:07:15
710
原创 hive explain 执行计划详解看懂执行过程
HIVE简介讲explain之前,先了解大家常说的用hive查询取数和etl的过程,但是在讲hive查询取数过程,又得先了解大家又常说的hadoop集群到底是干什么的?一句话概括:Hadoop就是存储海量数据和分析海量数据的工具。Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,其核心部件是HDFS与MapReduce。 HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进
2021-10-01 12:01:53
4180
1
原创 HIVE HDFS对NULL值处理
hive 写入null后在hdfs 中显示\N 存储,如果直接读取hdfs则会直接读到\N数值如何解决这个问题,需要对表属性中的null值存储进行修改,具体的表serialization.null.format可以在desc formatted 查询具体表属性Storage Desc Params: serialization.format 1 serialization.null.format N 场景构建:临时表创建CREATE T
2021-10-01 10:23:20
1911
原创 hive 开窗函数OVER(PARTITION)详解(二)
窗口函数有哪些?窗口函数可以分为以下 3 类:聚合(Aggregate):AVG(),COUNT(),MIN(),MAX(),SUM()...sum(col) over() : 分组对col累计求和 count(col) over() : 分组对col累计计数 min(col) over() : 分组对col求最小 max(col) over() : 分组求col的最大值 avg(col) over() : 分组求col列的平均值取值(Value):FIRST_VALUE(),LAS...
2021-09-27 16:53:50
1887
原创 hive 开窗函数OVER(PARTITION)详解(一)
什么是窗口函数?窗口函数(Window Function)是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通函数和聚合函数,它为每行数据进行一次计算:输入多行(一个窗口)、返回一个值。在报表等分析型查询中,窗口函数能优雅地表达某些需求,发挥不可替代的作用。窗口函数出现在 SELECT 子句的表达式列表中,它最显著的特点就是OVER关键字。语法定义如下:window_function (expres...
2021-09-23 11:01:00
2969
原创 Hive lateral view 用法-行转列
Hive: lateral view 用法lateral view 的语法格式lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (','columnAlias)* fromClause: FROM baseTable (lateralView)*用法描述lateral view 要与UDTF函数一起使用,比如 explode() 函数。这里的UDTF函数是指用户自定义的表生成函数(英文全称:use.
2021-09-22 19:29:37
731
原创 HIVE left semi join & inner join区别
left semi join 详解LEFT SEMI JOIN以一种高效的方式实现了不相关的IN/EXISTS子查询语义。 在Hive 0.13中,IN/NOT IN/EXISTS/NOT EXISTS操作符被支持使用子查询,所以大多数join操作不再需要手动执行。 使用LEFT SEMI JOIN的限制是,右边的表只能在连接条件(on子句)中引用,而不能在WHERE或select子句等中引用。示例SELECT a.key, a.valueFROM aWHERE a.key in (SELECT
2021-09-22 15:41:35
951
原创 hive 动态分区与混合分区写入
hive分区测试:hive分区建立,静态、动态、混合分区,在混合中静态分区要在动态分区之前。删除时间段分区在partition()里面逻辑符用逗号, 比如时间段分区-- 批量删除分区数据alter table tmp_test.tmptable drop partition(dt>='20191101',dt<='20191130')分区数据写入创建一个分区测试表use tmp_test;drop table if exists tmp_test.cs_
2021-09-22 10:09:38
1006
原创 HIVE 转义字符与特殊字符处理
Hadoop和Hive都是用UTF-8编码的,hive用java写的,所以同Java一样都是'\'转义很多函数会用到转义字符,比如split、regexp_replace等但是有时候需要两个转义字符"\\",或者四个转义字符“\\\\”单转义符'\':常规的为'\'进行字符串的转义 双转移符'\\':正则表达式匹配或者split函数中包含转义符 四个转义符'\\\\':split函数中存在转义符'\'为分隔符 分号:';'无法识别和转义,需要使用ASCII码处理(只要使用到了函数就会报错)
2021-09-18 15:27:32
10760
原创 hive正则匹配:regexp_replace、regexp_extract、regexp
hive正则匹配:regexp_replace、regexp_extract、regexp一、regexp语法介绍regexp语法: A REGEXP B操作类型: strings描述: 功能与RLIKE相同regexp_extract语法: regexp_extract(string subject, string pattern, int index)返回值: string说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
2021-09-16 03:03:16
31571
原创 hive 字符串提取&json格式解析
前言在数据存储时研发端经常为了方便很多字段为了冗余存储了文本格式:json或者固定分隔符,但是数仓和数据分析在处理的时候又要进行取出单独的某个字段,进行使用,本文会详解下平时在工作中遇到的问题与处理办法。字符串固定分隔符处理案例:字符串以:|*|分隔,k-v以:分隔,取出其中scene_ids字段值字符串:|*|cityId:201|*|qId:4890f057-8c8d-4fd6-8029-9ec8a374ab3b|*|st:poi|*|sId:62778388|*|scene_ids:6,0
2021-09-13 10:17:46
6498
原创 SQL-实现excel向下填充的功能
一、数据处理背景说明数据背景:比如埋点过程中往往存在埋点记录缺失的问题,比如app跳转h5的获取用户卡号缺失,用同一ip获取卡号向下填充,进行数据补齐操作。抽象成以下数据场景:sql实现excel内自动向下填充的功能,实现下面的图片的数据填充处理功能二、处理过程分析针对查询sql存在CET递归的方法进行查询,这边主要针对数仓层hive使用tsql的方法进行处理。主要是对分组排序关联后进行字段null的填充。三、具体语句实现sql代码实现:with soucre as ( se
2021-09-13 10:13:39
2232
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人