函数简介:
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函数相关推荐

  1. 2021年大数据Hive(八):Hive自定义函数

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive自定义函数 一.概述 1.UDF(User-Define ...

  2. 大数据基础之Hive(四)—— 常用函数和压缩存储

    作者:duktig 博客:https://duktig.cn (文章首发) 优秀还努力.愿你付出甘之如饴,所得归于欢喜. 更多文章参看github知识库:https://github.com/dukt ...

  3. 大数据hive篇--UDF函数

    什么是UDF: 它是User defined Function的简写,意思是用户自定义方法 为什么要用UDF? hive自带了一些函数,比如:max.min 等,但是自带的函数数量有限,所以hive提 ...

  4. 大数据入门教程系列之Hive内置函数及自定义函数

    本篇文章主要介绍Hive内置函数以及自定义UDF函数和UDFT函数,自定义UDF函数通过一个国际转换中文的例子说明. 操作步骤: ①.准备数据和环境 ②.演示Hive内置函数 ③.自定义UDF函数编写 ...

  5. python引用大数据,Python 3 UDF

    Python 2官方即将停止维护,MaxCompute支持Python 3.MaxCompute使用的Python 3版本为CPython-3.7.3.本文为您介绍如何通过MaxCompute Pyt ...

  6. 【大数据】InfluxDB的常用查询及常用函数

    通过上篇博客,我们已经简单认识了InfluxDB了,其实在实际使用中,我们最常用的就是查询了,这篇博客就详细了解下InfluxDB的查询操作 一.常用查询 1.从单个measurement查询所有的f ...

  7. 大数据学习笔记38:Hive - 内置函数(1)

    文章目录 一.查看与描述 1.查看全部函数 2.查看函数的描述 二.运算 (一)数学运算 1.加法运算:+ 2.减法运算:- 3.乘法运算:* 4.除法运算:/ 5.求余运算:% 6.位运算:& ...

  8. 大数据之hive实践二(DDL+DML+查询+函数)

    第 4 章 DDL 数据定义 4.1 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> ...

  9. 大数据框架之Hive:第8章 函数

    第8章 函数 8.1 函数简介 Hive会将常用的逻辑封装成函数给用户进行使用,类似于Java中的函数. 好处:避免用户反复写逻辑,可以直接拿来使用. 重点:用户需要知道函数叫什么,能做什么. Hiv ...

最新文章

  1. 【Qt】通过QtCreator源码学习Qt(十):多国语言支持
  2. 全球 35 大开源公司都在这里!
  3. html5 子元素选择器,CSS子元素选择器 - HTML电子邮件
  4. 【元气云妹】有趣有料的云吞铺子,来一碗吗?
  5. win10计算机拒绝访问,教你win10系统c盘拒绝访问怎么办
  6. 三层架构用户登录代码c语言,网站用户登录、注册和修改密码常用代码,采用三层架构...
  7. 5天让你技能加满的“王炸组合”,速来!
  8. 配置DNS服务器的需要修改的配置文件为,dns服务器配置教程
  9. ICML2020 | 伯克利提出大模型提升Transformer的训练和推理效率
  10. 软件开发人员薪资标准 人月_IT从业者培训前后薪资差距近3000块钱
  11. linux入门 适合初学者_经过慎重考虑,我拿出这套适合初学者入门的Java基础完整版视频...
  12. 大数据分析系统包含哪些功能板块
  13. 新版智能广告点击要饭网单页网站源码
  14. 为树莓派制作系统镜像时进行瘦身,方便后续保存与批量写入
  15. Linux 阻塞和非阻塞I/O
  16. 好用的三维绘图软件CREO绘制椭圆
  17. 满满干货!15个经典面试问题及答案
  18. 分享| 电脑设置双屏或多屏显示2种简单方法,你能学会几种?
  19. EOF while reading packet
  20. Element-ui不显示表格数据问题

热门文章

  1. Chat GPT5的主要介绍
  2. Android设计模式详解之责任链模式
  3. C++中虚析构函数和纯虚函数的作用
  4. 04-31.eri-test Como ler um arquivo JSON no Java
  5. 联想拯救者r7000p在ubuntu20.04未找到wifi适配器,安装rtl8852ae网卡驱动问题解决方案
  6. 抖音一键批量下载无水印视频,这款软件帮助你
  7. 李峋同款爱心python实现
  8. HTML5实现简易计算器
  9. 地理信息的空间认知与GIS语义学
  10. html+css 安利案例