![](https://img-blog.csdnimg.cn/bfd16f0a555f44d981b10247cec7155a.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hive
文章平均质量分 72
Hive
对许
这个作者很懒,什么都没留下…
展开
-
Hive修改表中的某个值
值得注意的是,以上两种方案会将整个表的数据复制一遍,如果表很大,可能会消耗较多的时间和资源。对于大数据量的情况,可以考虑使用MapReduce或Spark等分布式计算引擎来对数据进行修改。Hive是一个数据仓库工具,它提供了数据的静态查询功能,而不能处理在线事务。使用INSERT语句,将原表中的数据复制到新表,并对需要修改的值进行更改。另外,在修改数据之前,不要忘记备份原来的数据!Hive要修改表中的某个值,如何实现?创建一个新表,其结构与原表相同。将新表重命名为原表的名字。原创 2024-07-18 22:48:29 · 80 阅读 · 0 评论 -
ORC与Parquet列式存储的区别
谓词下推使用这些索引来确定需要为特定查询读取文件中的哪些条带,而行索引可以将搜索范围缩小到特定的10000行集合ORC支持Hive中的完整数据类型,包括复杂类型:Struct、List、Map和Union。列式存储(Columnar Storage)是一种优化的数据存储方式,与传统的行式存储(Row Storage)相比,列式存储在数据压缩、查询性能、I/O效率等方面具有明显的优势。Apache Parquet是一种开源的列式数据文件格式,旨在实现高效的数据存储和检索。原创 2024-06-27 14:47:30 · 469 阅读 · 0 评论 -
Hive on Spark版本兼容性
Hive on Spark仅在特定版本的Spark上进行测试,因此给定版本的Hive只能保证与特定版本的Spark一起工作。其他版本的Spark可能与给定版本的Hive一起工作,但不能保证。原创 2024-06-08 16:08:23 · 517 阅读 · 0 评论 -
SparkSQL允许左联接的数据量大于左表数据量?
本次问题可以概括为:由一个join改为left join而引发的数据倾斜问题,并且一开始还当成了OOM处理。看似一个不起眼的举动,往往会产生意想不到的结果。这就是蝴蝶效应由于原来是join时SQL没有出现过数据倾斜问题,而这恰好让我们忽略了空值Key的问题。因此,我们应该时刻关注细节,细节决定成败!通过本次问题,现总结以下两点:原创 2024-04-18 18:07:16 · 753 阅读 · 0 评论 -
Hive表字段值中存在换行符,查询结果混乱进而导致插入失败
从上面结果可以看到,若Hive表字段值中存在换行符,MapReduce和Spark引擎的查询结果出现混乱。自动化调度系统在按周期天执行数据迁移(出库)任务时,在执行到某条SQL时报错,最终导致任务失败。由于我们的调度系统设置的执行引擎为Spark,因此,原本查询的一行结果会被字段值中的换行符。报错信息提示语法问题,可是检查SQL发现也没有什么语法问题,这到底是怎么回事呢?这样,我们的数据才会显示正常,报错问题也就解决了。转换为多行,查询结果结构混乱,最终导致插入失败。使用两个反斜杠,即一个反斜杠用来转义。原创 2024-02-23 15:18:11 · 634 阅读 · 0 评论 -
Hive与Presto中的列转行区别
Hive、Spark和Presto都提供了这种实现,但有所不同。下面通过这个案例介绍三者之间的区别及注意事项。在处理数据时,我们经常会遇到一个字段存储多个值,这时需要把一行数据转换为多行数据,形成标准的结构化数据。不会自动过滤被转换列和转换列字段值为空的数据,因此此方式数据不会丢失。会自动过滤被转换列和转换列字段值为空的数据,进而导致数据丢失。例如,将下面的两列数据并列转换为三行,使得。使用PrestoSQL的交叉连接。Hive和Spark都可以使用。原创 2024-02-04 22:53:34 · 1346 阅读 · 0 评论 -
数据去重,用DISTINCT还是GROUP BY?
MapReduce Job卡在了最后一个ReduceTask,任务迟迟未运行成功,ReduceTask只有一个如果某个Job任务卡在99%不动,例如,某个Reduce的时间比其他Reduce时间长的多,大部分Task在1分钟左右完成,只有一个Task执行20多分钟还没完成。这时我们就应该考虑出现数据倾斜了如果每个ReduceTask执行时间差不多,都特别长,不一定是数据倾斜导致的,可能是ReduceTask设置过少导致的。这时可以调整ReduceTask个数。原创 2023-12-28 18:10:34 · 973 阅读 · 0 评论 -
SQL连续
连续问题是实际数据开发中比较常见的场景。例如,统计用户连续活跃天数等SQL如何解决连续问题?本文主要介绍连续性问题,重点以常见的连续活跃场景为例,抽象出通用的连续问题解决方案。连续问题主要分为静态连续问题和动态连续问题两类本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性。原创 2023-12-15 18:03:21 · 1006 阅读 · 0 评论 -
SQL排列组合
排列组合是针对离散数据常用的数据组织方法,本节将分别介绍排列、组合的SQL实现方法,并结合实例着重介绍通过组合对数据的处理如何使用SQL实现排列与组合?本节将通过介绍分组对比统计场景,抽象出通用的解决方案本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性。原创 2023-12-14 17:58:27 · 1385 阅读 · 0 评论 -
SQL区间
区间相较数列具有不同的数据特征,不过在实际应用中,数列与区间的处理具有较多相通性。常见的区间操作有区间分割、区间交叉等SQL如何实现区间分割?SQL如何处理区间交叉?本节将介绍一些常见的区间场景,并抽象出通用的解决方案本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性传送门。原创 2023-12-14 14:47:11 · 1267 阅读 · 0 评论 -
Hive、MySQL、Oracle内建函数对照表
Hive自身预置了许多函数,可以满足大部分业务场景的数据处理需求。例如,日期与时间函数、数学函数、窗口函数、聚合函数、字符串函数、复杂类型函数、加密函数等。本文将提供MaxCompute、Hive、MySQL以及Oracle的内建函数对照表,方便我们在使用时进行对照查阅,以避免混淆使用。原创 2023-12-12 15:51:47 · 617 阅读 · 0 评论 -
SQL数列
数列是最常见的数据形式之一,实际数据开发场景中遇到的基本都是有限数列。常见的数列例如:简单递增序列、等差数列、等比数列等如何充分发挥SQL能力?SQL如何实现递增序列、等差数列、等比数列?本文将从最简单的递增数列开始,找出一般方法并推广到更泛化的场景本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性。原创 2023-12-12 15:03:59 · 1266 阅读 · 0 评论 -
如何截取Hive数组中的前N个元素?
现在,我们要截取上述数组中的前三个元素,那么应该怎么操作呢?需求:截取任意给定数组中的前N个元素,返回截取后的子数组。方式3:先转换为字符串,再截取特定长度后转换为数组。方式1:使用索引逐个取值,再收集到新的数组。可以尝试以下几种方案。原创 2023-12-11 15:57:09 · 1150 阅读 · 0 评论 -
Hive增强的聚合、多维数据集、分组和汇总
在多维分析场景下,我们可能会用到高阶聚合函数,例如CUBEROLLUP等。Hive、Spark、Presto等引擎都提供类似的高阶聚合函数,以对不同维度组合下的数据进行聚合统计Hive官方将这种分析称为GROUP BY子句增强的聚合、多维数据集、分组和汇总那么什么是增强聚合和多维分析呢?增强聚合是指在SQL中使用分组聚合查询时,使用CUBEROLLUP等子句进行操作。常见的查询引擎基本都支持这种语法,例如Hive、Spark、Presto、FlinkSQL等。原创 2023-12-07 17:28:00 · 1466 阅读 · 0 评论 -
Hive内置表生成函数
在Hive中,所有的运算符和用户定义函数,包括用户定义的和内置的,统称为UDF(User-Defined Functions)。如下图所示:其中,用户自定义聚合函数和内置聚合函数统称为UDAF(User-Defined Aggregate Functions),用户自定义表生成函数和内置表生成函数统称为UDTF(User-Defined Table-Generating Functions)本文将主要通过具体案例详细介绍Hive的内置表生成函数(UDTF)原创 2023-11-24 16:37:17 · 1438 阅读 · 0 评论 -
Hive默认分割符、存储格式与数据压缩
Hive支持的存储数据的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC(列式存储)、PARQUET(列式存储)。企业中使用ORC较多。SNAPPY压缩在企业中使用较多。Hive的数据压缩格式通过。原创 2023-11-19 17:30:11 · 691 阅读 · 0 评论 -
Hive客户端hive与beeline的区别
Hive-cli(hive)是Hive连接hiveserver2的命令行工具,从Hive出生就一直存在,但随着Hive功能的增强、BUG的修复及版本升级,Hive-cli结构的局限性已经跟不上Hive的发展,如果强行更改又不能满足向下兼容,于是就出现了全新的beeline命令行结构原创 2023-11-18 17:45:50 · 1051 阅读 · 0 评论 -
Hive插入数据警告:Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions
启动Hive的JDBC服务并使用IDE连接到HIve,创建表成功,但是INSERT插入数据时经过长时间加载后无法得到预期结果,插入不成功。然而,很多小伙伴都是本地测试时使用的INSERT,更换Spark、Tez可不是那么容易;实际工作中根据生产环境需要可直接进行引擎修改,甚至都不用你修改,底层自动优化自动选择执行引擎。Hive-on-MR在Hive 2中已弃用,并且在未来版本中可能不可用。考虑使用不同的执行引擎(例如Spark、Tez)或使用Hive 1.X版本。我们发现,这就很明显了,说明Hive在。原创 2023-11-12 15:11:42 · 3217 阅读 · 3 评论 -
Hive谓词下推之FULL JOIN
本案例将使用full join连接类型进行演示,并透过full join来反映其它Hive谓词下推通用使用场景,得出普遍结论。b表先执行where过滤,过滤后再与a表进行full join,因此,a、b两表中rank=2的数据丢失,结果不符合要求。a表与b表互相没有匹配到的数据显示为NULL,数据不会丢失,但结果不符合要求。a表与b表互相没有匹配到的数据显示为NULL,数据不会丢失,但结果符合要求。原创 2023-11-06 22:14:03 · 487 阅读 · 1 评论 -
Hive谓词下推
谓词下推(Predicate Pushdown,PPD)是指将过滤表达式尽可能移动至靠近数据源的位置,以使真正执行时能直接跳过无关的数据。简而言之,就是在合适的场景下,优先执行过滤条件。原创 2023-11-06 22:07:44 · 703 阅读 · 0 评论 -
Pandas多列排序与多列排名
pct:返回相对排名(每个值在数据中的位置的百分比),百分比表示每个元素在数据集中的相对位置,默认False。将每个人的积分、评分汇总,并按总积分排名,总积分一致时,按总评分排名,最终结果按排名升序。工作中,我们可能会遇到这样的需求:按汇总指标A排名,指标A值相同,则按指标B排名。上述方式可以实现按总积分进行排名,若总积分相同则按照总评分排名的需求(相当于实现了按总积分进行排序,若总积分相同则按照总评分排序的需求。:值相同时重复,总数不变,相当于Pandas的。:始终按顺序排序,相当于Pandas的。原创 2023-10-16 15:46:19 · 466 阅读 · 0 评论 -
Python操作Hive数据仓库
sasl模块是Python中用于实现SASL(Simple Authentication and Security Layer)认证的第三方库,提供了对各种SASL机制的支持,例如与Kafka、Hadoop等进行安全通信。Thrift是一个轻量级、跨语言的RPC框架,主要用于服务间的RPC通信。由于Hadoop集群节点间使用RPC通信,所以需要配置Thrift依赖环境。Python连接Hive需要使用Impala查询引擎。查找需要的whl文件,点击下载对应版本。开启Hive的JDBC服务。原创 2023-10-09 21:48:51 · 1510 阅读 · 0 评论 -
IDEA查询Hive表中文显示??问题解决
使用hiveserver2重启Hive的客户端服务。修改hive中hive-site.xml配置文件。IDEA连接Hive查询表结果中文显示`?在Linux-MySQL中执行如下语句。原创 2023-09-11 22:40:42 · 125 阅读 · 0 评论 -
HQL解析Json对象列表字符串常见问题与解决
LATERAL VIEW子句与生成器函数(如explode)结合使用,将生成包含一个或多个行的虚拟表。使用LATERAL VIEW OUTER,结果数据不会丢失,explode()结果显示为NULL。explode()转换的Array中若包含NULL,则结果中不会有该行记录,最终导致。,结果数据不会丢失,explode()结果显示为。1、Json对象列表字符串解析为数组。1、Json对象列表字符串解析为数组。只能解析json字符串中都是使用。可以解析json字符串中都是使用。3、解析json字符串。原创 2023-09-09 16:00:18 · 438 阅读 · 0 评论