- 博客(62)
- 收藏
- 关注
原创 Scala学习笔记20: Future 和Promise
在 Scala 中, `Future` 和 `Promise` 是用于处理异步操作的强大工具 ;它们就像一对搭档, 协同工作, 优雅地管理着那些需要花费时间的任务 .
2024-07-26 16:01:19 227
原创 Scala学习笔记19: 隐式转换和隐式参数
隐式转换和隐式参数是 Scala 中两个强大的特性, 它们可以使代码更简洁、更灵活, 但也容易造成理解上的困难 ;`隐式转换` 允许你自动将一种类型的对象转换成另一种类型的对象, 而无需显式调用转换方法 ; 例如, 你可以定义一个隐式转换, 将整数自动转换为字符串 ;`隐式参数` 则允许你在函数定义中忽略某些参数, 编译器会在调用函数时自动查找并传入这些参数 ;例如, 你可以定义一个隐式参数, 用于表示数据库连接, 并在需要访问数据库的函数中使用它 ;
2024-07-19 16:20:53 873
原创 Scala学习笔记18: Either 类型
Either类型为 Scala 开发者提供了一种更优雅、更安全的方式来处理可能失败的操作;它鼓励开发在代码中显式地处理成功和失败两种情况, 从而提高代码的健壮性和可读性 .
2024-07-17 17:32:50 363
原创 Scala学习笔记17: Try与异常处理
Try类型是 Scala中函数式异常处理的重要工具, 它让挖煤可以用更优雅、更简洁的方式来处理异常, 使代码更易于理解和维护 .
2024-07-15 17:13:37 571
原创 Scala学习笔记16: 注解
Scala 中的注解 (Annotations) 是一种元编程工具, 用于向编译器、运行时或其他工具提供元数据 ;注解可以应用于各种程序结构, 包括类、对象、方法、字段、参数等 ;下面是对Scala注解的详细介绍, 包括常见的注解、如何定义自定义注解, 以及使用注解的一些示例 ;
2024-07-12 16:08:19 871 1
原创 Scala学习笔记15: 文件和正则表达式
Scala中的正则表达式功能强大, 能够满足各种文本匹配和处理的需求;希望以上介绍能够帮助你更好的理解Scala中的正则表达式 .
2024-07-05 16:05:13 1010
原创 [数据质量]手动实现 阿里云DataWorks 的数据质量监控告警功能
使用Python 实现对数据库表的监控告警功能, 并将告警信息通过钉钉机器人发送到钉钉群实现DataWorks中数据质量的基本功能, 当然 DW的数据质量的规则类型很多, 用起来比较方便, 这里目前简单实现了其中三个规则类型的功能, 仅供参考, 欢迎交流;初次使用Python, 请多指教使用工具: MaxCompute代码可以直接copy, 可开箱即用(部分内容, 如分区层级, 可根据你自己公司的数据表进行调整); 规则内容如有不懂, 欢迎咨询讨论;
2024-06-24 17:52:50 821
原创 Scala学习笔记14: 模式匹配和样式类
在Scala中, 模式匹配和样例类是强大的功能, 用于处理复杂的数据结构和逻辑 ;模式匹配是一种功能强大的机制, 可以根据数据的结构和属性进行匹配和处理 ;样例类是一种特殊的类, 用于简化模式匹配和不可变性 .
2024-06-21 17:48:32 878
原创 Scala学习笔记13: 集合
在Scala中, 集合的化简 (reduce) 、折叠(fold) 和扫描(scan) 是常用的函数式编程操作, 用于对集合中的元素进行聚合计算;Scala提供了丰富的集合类库, 包括可变和不可变的集合类型, 以及各种高阶函数和操作符, 方便对集合进行操作和转换;不可变集合的操作不会改变原始集合, 而返回一个新的不可变集合, 这有助于避免副作用和提高代码的可维护性 .Scala的数组与Java的数组类似, 但Scala的数组可以是泛型的, 运行存储不同类型的元素;
2024-06-19 09:17:28 728 2
原创 Scala学习笔记12: 高阶函数
通过将函数视为一等公民(First-Class Citizens) , Scala支持函数作为值的概念, 使得函数可以像其他数据类型一样被操作和传递, 从而实现更具变现力和可组合性的编程风格 .通过SAM转换, Scala提供了一种简洁的方式类将函数转换为 trait 或抽象类的实例, 从而更方便地在代码中使用函数式编程的特性 .在Scala中, 匿名函数是一种没有明确名称的函数, 通常用于简单的功能或作为高阶函数的参数;
2024-06-14 16:52:56 674
原创 Scala学习笔记11: 操作符
在Scala中, 以冒号结尾的操作符通常是右结合的;左结合性: 对于左结合性的操作符, 表达式中相同优先级的操作符从左向计算;在Scala中, 操作符的结合性是指子啊表达式中相同优先级的操作符出现时, 确定操作符的计算顺序;在Scala中, 可以使用括号来明确指定操作符的优先级, 以确保表达式的求值顺序符合预期;Scala中的赋值操作符通常以等号 (=) 结尾, 用于将右侧的值赋值给左侧的变量;
2024-06-12 16:28:23 754
原创 Scala学习笔记10: 特质
在Scala中, 特质(Tratis) 是一种非常强大的特性, 可以为类提供额外的功能, 类似于 Java中的接口 ;特质可以包含抽象方法、具体方法、字段等, 并且可以被类混入以增强类的功能 .
2024-06-07 16:02:56 1108
原创 Scala学习笔记9: 继承
在Scala中, 继承(Inheritance) 是面向对象编程的重要概念, 允许一个类 (子类) 继承另一个类 (父类) 的特性和行为;需要注意的是, 在Scala中, 一个类只能扩展一个类(单继承) , 到那时可以混入多个特质(traits) 来实现多重继承和代码复用 .总的来说, 在Scala中, 对象的相等性可以通过引用相等性和结构相等性来进行比较, 开发人员可以根据具体需求选择合适的比较方式 .当一个类扩展另一个类时, 他会继承父类的特性 (字段, 方法等) 并可以重写父类的方法;
2024-06-05 15:27:36 790
原创 Scala学习笔记8: 包
在Scala中, 包(Packages) 用于创建命名空间, 帮助组织和管理代码, 类似与 Java 中的包;通过合理的使用这些访问修饰符, 可以控制代码中各个成员的可见性和访问权限, 从而提高代码的安全性和可维护性;通过包对象, 可以方便地共享代码和数据, 避免重复定义相同的内容, 并提高代码的组织性和可维护性 .包对象运行在包级别定义全局可以的成员, 这些成员可以被包内的所有类、对象和特质访问;通过包对象, 可以方便地在包级别共享代码和数据 , 提高代码的可维护性和可读性;
2024-05-31 15:51:44 838
原创 Scala学习笔记7: 对象
在Scala中, 伴生对象 (Companion Object) 是一个与类同名的对象, 用于扩展类的功能并提供类级别的操作;通过这种方式, 你可以灵活地扩展类或特质的对象, 使其具有更多的功能和行为, 同时保持原始类或特质的不变性;通过伴生对象, 你可以在Scala中实现类级别的操作和共享的功能, 提供高代码的可维护性和灵活性;通过扩展类或特质的对象, 可以在不修改原始类或特质的情况下, 为其添加额外的功能或行为;在Scala中, 要扩展类或特质的对象, 可以使用匿名类或匿名特质的方式来实现;
2024-05-29 19:03:27 1148 2
原创 Scala学习笔记6: 类
在Scala中, 类用于创建对象的蓝图;类可以包含方法、值、变量、类型、对象和特质等成员;类名应该以大写字母开头, 可以包含构造函数、主题和方法等可以使用class关键字定义类, 并使用new关键字实例化类;
2024-05-24 16:19:42 960
原创 Scala学习笔记5: 映射、选项以及元组
在Scala中, 构造映射的种类主要包括 不可变映射 (Immutable Map) 和 可变映射(Mutable Map); 方法: 交换元组中的元素顺序, 仅限于两个元素的顺序交换, 不包含是哪个或更多元素的元组;在Scala中, 构造映射(Map) 是一种常见的操作, 用于创建和初始化键值对集合;在Scala中, 可以使用通过键来获取映射 (Map) 中的值;来反转映射中的键值对, 将原来的键变为值, 值变为键;元组可以包含不同类型的元素, 并且原则的长度是固定的;和元素的索引来访问元素中的元素;
2024-05-22 17:29:46 851
原创 Scala学习笔记2: 控制结构和函数
Scala的 if/esle 语法结构与java一样, 但是在Scala中 if/else 表达式有值, 这个值就是跟在 if 或 else 之后表达式的值.相比较, 第一种写法更好, 因为它可以用来初始化一个 val, 而第二种写法中, z 必须是 var;在Scala中, 语句的终止通常使用分号 (😉 来表示, 但是大多数情况下, 分号是可选的;, 在调用函数时, 可以使用默认参数, 也可以通过指定参数的名称来传递参数值 .
2024-05-15 09:17:01 943 1
原创 Scala学习笔记1:基础
Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。
2024-05-13 17:13:13 474
原创 窗口函数的实现
窗口函数的实现 & MySQL 实现窗口函数功能; 众所周知: MySQL从8.0版本开始支持窗口函数, 但是对于8.0版本之前的MySQL是无法使用窗口函数的, 我们可以通过一个类似嵌套子查询的方式, 来实现窗口函数的功能;
2024-03-14 12:06:28 416
原创 SQL的窗口函数
窗口函数分类:聚合函数、排序函数和值函数。SQL中的窗口函数是一种特殊的函数,它能够在查询结果中创建一个窗口或者窗口集合,然后对这个窗口进行计算。窗口函数可以用于分析和汇总数据,同时保留原始查询结果的行顺序。窗口函数基于查询结果的行数据进行计算,窗口函数运行在HAVING子句之后、 ORDER BY子句之前。窗口函数需要特殊的关键字OVER子句来指定窗口即触发一个窗口函数。
2024-02-29 09:09:01 1264
原创 SQL中的 CASE WHEN用法详解
CASE WHEN语句提供了一种在 SQL 查询中根据不同条件执行逻辑的灵活方法。它可用于简单的条件检查,也可用于复杂的逻辑操作。使用CASE WHEN可以使查询更具可读性,并且可以减少在应用程序代码中进行逻辑操作的需要。
2024-02-23 17:49:05 5838
原创 计算每小时累计销售额
本题的核心是找到小时级别的序列,‘统计每年在校人数’ 也是相同类型的题目, 可以熟练使用, 不管是天级别,小时级别,分钟级别 都可以使用次方法实现;‘统计每年在校人数’: https://blog.csdn.net/Taerge0110/article/details/135137626?
2024-01-25 17:12:33 861
原创 SQL中的几个区别
1:几种JOIN连接方式的区别?2:几种排序窗口函数的区别?3:on和where的区别?4:having和where的区别?5:union和union all的区别?6:in和exists的区别?7:数据库中空字符串、0和NULL的区别?8:count(1)、count(*)和count(列名)的区别?
2024-01-18 12:21:19 1435
原创 Python实现数据库表的监控告警功能
简介:使用Python 实现对数据库表的监控告警功能, 并将告警信息通过钉钉机器人发送到钉钉群实现DataWorks中数据质量的基本功能, 当然 DW的数据质量的规则类型很多, 用起来比较方便, 这里只简单实现了其中两个规则类型的功能, 仅供参考;初次使用Python, 请多指教使用工具: MaxCompute。
2024-01-05 18:52:37 528
原创 Transactional Table(事务表)创建和使用
创建可以支持增删改操作(insert,delete,update)的事务表; 使用工具: maxcomputer; 本次创建 Transactional Table 1.0表; 初次使用,欢迎指教;
2024-01-03 18:20:39 763
原创 Hive的四种排序方法
hive有四种排序方法: ORDER BY 、SORT BY 、DISTRIBUTE BY 、CLUSTER BY。hive排序方法,hive的排序方式。
2023-12-22 15:30:45 1968
原创 统计每年在校人数
posexplode() 函数: 该函数可以将index和数据都取出来。可以使用 index 作为值和招生年份相加, 得出在校年份, 因为index是从0 开始的, 所以需要将年制 加1。
2023-12-21 18:32:23 395
原创 间断连续登陆天数问题
统计用户最大连续登陆天数, 间隔一天也算是连续登陆;例如: 用户 1 3 5 8 登陆, 算做连续登陆5天是连续登陆天数的升级版, 结合浏览窗口划分。
2023-12-11 17:35:48 1034
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人