Spark/Hive
文章平均质量分 67
记录spark和hive学习点滴
有数的编程笔记
蓄势待发,待机而动
展开
-
相同含义但不同类型字段作为join条件时注意事项
假设表A和表B中都有表示学号的stu_id字段,但该字段在表A和表B中类型分别为bigint和string。当string和bigint中的数值太长时,转换为double时会损失精度,从而在计算时改变了原本的数值,造成无法正确join的问题。但是如果学号长度较长的情况下,可能无法得到正确的结果。这是因为在实际的计算过程中,是将string和bigint类型强制转换为。为了方式异常情况的发生,应该将bigint类型的值使用cast显示转换成string,再进行join。原创 2024-07-10 21:07:33 · 360 阅读 · 0 评论 -
Hive/Spark窗口函数
结果中,对于每一行的last_value的结果都是当前值,并不分区中按salary升序的最后一个值。前面在提到last_value时,特意强调了该函数的结果并不是分区中的最后一个值,结合上述介绍的window specification再来看下该函数的结果值。注意,默认情况下last_value取的是第一行截止到当前行的最后一个值(当前行的值),并不是整个分区中排序后的最后一个值。注意,如果order by的结果相同,则rank得到的结果都相同,在这里的语义是排序结果相同,因此等级编号也相同。原创 2024-07-09 21:02:55 · 865 阅读 · 0 评论 -
Spark pivot数据透视从句
TOC。原创 2024-04-24 20:12:39 · 715 阅读 · 1 评论 -
HiveSQL如何生成连续日期剖析
情景假设:有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过模拟一个结果表数据)如果对涉及到的函数和语法不是特别了解,直接看到上述结果可能有点懵,接下来换个形式理解下,即如下sql如上sql结构比较简单,即t1表和t2表进行笛卡尔集,t1是原始表只有1行数据,但是结果是6行数据,因此关键点是t2的结果。原创 2024-04-07 09:42:12 · 972 阅读 · 0 评论 -
hive中collect_list和concat_ws函数对null值的处理
hive中collect_list和concat_ws函数在处理null值(或包含)时的结果原创 2022-08-21 11:07:48 · 4552 阅读 · 0 评论 -
Hive中分区数函数使用详情和误区
percentile和percentile_approx函数使用详情和误区原创 2022-10-24 16:56:48 · 3328 阅读 · 1 评论 -
select字段列表中无法使用计算出来的值进行再次计算
select字段列计算出来的结果无法在当前列中再次使用,需要嵌套子查询才可以使用原创 2022-08-21 11:30:20 · 485 阅读 · 0 评论 -
HiveQL和SparkSQL中的正则
hive和spark中的正则原创 2022-10-24 16:54:29 · 4804 阅读 · 0 评论 -
为什么我的left join结果和预期不一致?(Spark/Hive)
join中on条件和where条件中区别、以及多个join的执行顺序原创 2022-08-21 11:21:12 · 4135 阅读 · 0 评论 -
基于MeteStore查看hive磁盘占用
文章目录1. 相关元数据表介绍2. 示例关于hive中Statistics特性请查看Statistics in Hive1. 相关元数据表介绍DBS 表用于存储hive数据库信息, 包含数据库名、文件系统路径等。通过DB_ID字段与其他表相关联。TBLS 表用于存储Hive表、视图、索引表的基本信息,包含表名、表类型(外部表等)、所属数据库id、创建时间等信息。该表中有全部hive表信息TABLE_PARAMS 表存储全部hive表的一些额外信息(表属性以及其他统计信息)。该表只有3个原创 2021-12-05 21:46:26 · 435 阅读 · 0 评论 -
in、not in和or之间的处理细节
创建测试表,并插入模拟数据。原创 2022-08-21 11:38:01 · 382 阅读 · 0 评论 -
null值对group by和over中partition by的影响
结论:当group by或partition by的key中包含null值时,null值像其他普通值一样被处理,并不会特殊处理。原创 2022-08-21 10:54:39 · 1724 阅读 · 0 评论 -
SUM(A)+SUM(B)和SUM(A+B)不相等问题踩坑
null值在聚合函数中的处理和影响原创 2021-12-14 13:32:42 · 2702 阅读 · 0 评论 -
SparkSession 相关类
文章目录1. SparkSession相关类1.1. DataType1.2. Metadata1.3. StructType与StructField1.3.1. StructField类定义1.3.2. StructType类定义1.4. 数据源DataSource1.4.1. DataSource详解1.4.2. DataSourceRegister详解1.5. 数据集合DataSet1.5.1. 属性和方法1.6. DataFrameReader详解1.6.1. 属性和方法1.7. SparkSess原创 2020-10-15 00:14:45 · 858 阅读 · 0 评论 -
Spark 配置
文章目录1. Spark 配置1.1. Spark 属性1.1.1. 动态加载Spark属性1.1.2. 查看Spark属性1.2. 环境变量1. Spark 配置Spark提供了三个位置来配置系统:Spark属性控制大多数应用程序参数,可以通过使用SparkConf对象、bin/spark-submit脚本选项、conf/Spark-default.conf文件或通过Java系统属性进行设置。环境变量可用于通过每个节点上的conf/spark-env.sh脚本设置每台机器的设置,例如IP地址。原创 2020-10-14 22:17:11 · 1118 阅读 · 0 评论 -
Spark 核心原理
文章目录1. Spark核心原理2. 消息通信原理2.1. Spark运行时消息通信1. Spark核心原理Application(应用程序):是指用户编写的spark应用程序,包含驱动程序(driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中有一个或多个作业组成。Driver(驱动程序):Spark中的Driver,即运行上述Application的main函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运原创 2020-10-13 23:14:21 · 1655 阅读 · 1 评论 -
SparkSQL 的 Thrift JDBC 服务和 CLI 介绍
Spark SQL还可以使用JDBC/ODBC或命令行接口(CLI)作为分布式查询引擎。在这种模式下,终端用户或应用程序可以直接与Spark SQL交互来运行SQL查询,而不需要编写任何代码。运行Thrift JDBC/ODBC服务器这里实现的Thrift JDBC/ODBC服务器对应于hive 1.2.1中的HiveServer2。您可以使用Spark或Hive1.2.1附带的beeli...翻译 2019-09-03 22:08:53 · 439 阅读 · 0 评论 -
详解 Spark 的 Standalone 集群
在一台机器上本地运行是很容易的,只需要在系统路径上安装Java,或者JAVA_HOHE环境变量指向Java安装可以通过scala shell的修改版本以交互方式运行spark。这是学习框架的好方法。./bin/spark-shell --master local[2]--master选项指定分布式集群的主URL,或local以一个线程本地运行,或local[N]以n个线程本地运行。要...翻译 2019-11-15 00:41:23 · 761 阅读 · 1 评论 -
详解 Spark 的 Submitting Applications
Spark之Submitting ApplicationsSpark bin目录中的spark-submit脚本用于在集群上启动应用程序。它可以通过统一的接口使用所有Spark支持的集群管理器,因此不必专门为每个集群管理器配置应用程序。绑定应用程序的依赖项如果您的代码依赖于其他项目,则需要将它们与应用程序一起打包,以便将代码分发到Spark集群。为此,需要创建一个包含代码及其依赖项的装...翻译 2019-09-03 22:07:28 · 142 阅读 · 0 评论