大数据——Redshift通过UDF函数实现金融业XIRR函数
函数简介:
https://support.microsoft.com/zh-cn/office/xirr-%e5%87%bd%e6%95%b0-de1242ec-6477-445b-b11b-a303ad9adc9d?ui=zh-cn&rs=zh-cn&ad=cn
编写python UDF函数
CREATE OR REPLACE FUNCTION xirr(dates VARCHAR ,moneys VARCHAR)
RETURNS numeric(10,6) IMMUTABLE
AS $$from scipy import optimizefrom datetime import datetimedef xnpv(rate, moneys, dates):return sum([float(money) / ((1 + rate) ** (dts / 365.0)) for (money, dts) in zip(moneys, dates)])def xirr(dates,moneys,guess=0.1):moneys_tmp = []for value in moneys.split(','):moneys_tmp.append(value)moneys = moneys_tmpdates_data = []for t in dates.split(','):t_tmp = (datetime.strptime(t.split(' ')[0], '%Y-%m-%d').date() - datetime.strptime(dates.split(',')[0].split(' ')[0], '%Y-%m-%d').date()).daysda = t_tmpdates_data.append(int(da))dates = dates_dataxirr_data = optimize.newton(lambda r: xnpv(r, moneys, dates), guess)return xirr_datareturn xirr(dates,moneys)
$$ LANGUAGE plpythonu;
导入官方数据
测试使用:
selectname,xirr(dates,moneys)from (select id,name, date, money,listagg(date, ',' ) WITHIN GROUP (ORDER BY date) OVER ( PARTITION BY name ) as dates , listagg(money, ',' ) WITHIN GROUP (ORDER BY date) OVER ( PARTITION BY name ) as moneys from check_info.xirrtest) a group by name,dates,moneys
大数据——Redshift通过UDF函数实现金融业XIRR函数相关推荐
- 2021年大数据Hive(八):Hive自定义函数
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...
- 大数据基础之Hive(四)—— 常用函数和压缩存储
作者:duktig 博客:https://duktig.cn (文章首发) 优秀还努力.愿你付出甘之如饴,所得归于欢喜. 更多文章参看github知识库:https://github.com/dukt ...
- 大数据hive篇--UDF函数
什么是UDF: 它是User defined Function的简写,意思是用户自定义方法 为什么要用UDF? hive自带了一些函数,比如:max.min 等,但是自带的函数数量有限,所以hive提 ...
- 大数据入门教程系列之Hive内置函数及自定义函数
本篇文章主要介绍Hive内置函数以及自定义UDF函数和UDFT函数,自定义UDF函数通过一个国际转换中文的例子说明. 操作步骤: ①.准备数据和环境 ②.演示Hive内置函数 ③.自定义UDF函数编写 ...
- python引用大数据,Python 3 UDF
Python 2官方即将停止维护,MaxCompute支持Python 3.MaxCompute使用的Python 3版本为CPython-3.7.3.本文为您介绍如何通过MaxCompute Pyt ...
- 【大数据】InfluxDB的常用查询及常用函数
通过上篇博客,我们已经简单认识了InfluxDB了,其实在实际使用中,我们最常用的就是查询了,这篇博客就详细了解下InfluxDB的查询操作 一.常用查询 1.从单个measurement查询所有的f ...
- 大数据学习笔记38:Hive - 内置函数(1)
文章目录 一.查看与描述 1.查看全部函数 2.查看函数的描述 二.运算 (一)数学运算 1.加法运算:+ 2.减法运算:- 3.乘法运算:* 4.除法运算:/ 5.求余运算:% 6.位运算:& ...
- 大数据之hive实践二(DDL+DML+查询+函数)
第 4 章 DDL 数据定义 4.1 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> ...
- 大数据框架之Hive:第8章 函数
第8章 函数 8.1 函数简介 Hive会将常用的逻辑封装成函数给用户进行使用,类似于Java中的函数. 好处:避免用户反复写逻辑,可以直接拿来使用. 重点:用户需要知道函数叫什么,能做什么. Hiv ...
最新文章
- 【Qt】通过QtCreator源码学习Qt(十):多国语言支持
- 全球 35 大开源公司都在这里!
- html5 子元素选择器,CSS子元素选择器 - HTML电子邮件
- 【元气云妹】有趣有料的云吞铺子,来一碗吗?
- win10计算机拒绝访问,教你win10系统c盘拒绝访问怎么办
- 三层架构用户登录代码c语言,网站用户登录、注册和修改密码常用代码,采用三层架构...
- 5天让你技能加满的“王炸组合”,速来!
- 配置DNS服务器的需要修改的配置文件为,dns服务器配置教程
- ICML2020 | 伯克利提出大模型提升Transformer的训练和推理效率
- 软件开发人员薪资标准 人月_IT从业者培训前后薪资差距近3000块钱
- linux入门 适合初学者_经过慎重考虑,我拿出这套适合初学者入门的Java基础完整版视频...
- 大数据分析系统包含哪些功能板块
- 新版智能广告点击要饭网单页网站源码
- 为树莓派制作系统镜像时进行瘦身,方便后续保存与批量写入
- Linux 阻塞和非阻塞I/O
- 好用的三维绘图软件CREO绘制椭圆
- 满满干货!15个经典面试问题及答案
- 分享| 电脑设置双屏或多屏显示2种简单方法,你能学会几种?
- EOF while reading packet
- Element-ui不显示表格数据问题