udf

ODPS2.0重装上阵,优化提升SQL语言表达能力

眉间皱痕 提交于 2020-03-13 10:32:11
MaxCompute(原ODPS)是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用,支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外,也致力于提升SQL语言的用户体验和表达能力,提高广大ODPS开发者的生产力。 MaxCompute基于ODPS2.0新一代的SQL引擎,显著提升了SQL语言编译过程的易用性与语言的表达能力。我们在此推出MaxCompute(ODPS2.0)重装上阵系列文章 第一弹 - 善用MaxCompute编译器的错误和警告 第二弹 - 新的基本数据类型与内建函数 第三弹 - 复杂类型 第四弹 - CTE,VALUES,SEMIJOIN 第五弹 - SELECT TRANSFORM 第六弹 - User Defined Type 第七弹 - Grouping Set, Cube and Rollup 第八弹 - 动态类型函数 MaxCompute自定义函数的参数和返回值不够灵活,是数据开发过程中时常被提及的问题。Hive 提供给了 GenericUDF 的方式,通过调用一段用户代码,让用户来根据参数类型决定返回值类型。MaxCompute 出于性能、安全性等考虑,没有支持这种方式。但是MaxCompute也提供了许多方式,让您能够灵活地自定义函数。 场景1 需要实现一个UDF,可以接受任意类型的输入

hive udf、udaf、udtf

老子叫甜甜 提交于 2020-03-11 18:34:48
1、UDF:用户定义(普通)函数,只对单行数值产生作用; 实现方法: 1. 继承UDF类 2. 重写evaluate方法 /** * @function 自定义UDF统计最小值 * @author John * */ public class Min extends UDF { public Double evaluate(Double a, Double b) { if (a == null) a = 0.0; if (b == null) b = 0.0; if (a >= b) { return b; } else { return a; } } } 2、UDAF:User- Defined Aggregation Funcation;用户定义聚合函数,可对多行数据产生作用;等同与SQL中常用的SUM(),AVG(),也是聚合函数; 实现方法: 1、用户的UDAF必须继承了org.apache.hadoop.hive.ql.exec.UDAF; 2、用户的UDAF必须包含至少一个实现了org.apache.hadoop.hive.ql.exec的静态类,诸如实现了 UDAFEvaluator 3、一个计算函数必须实现的5个方法的具体含义如下: init():主要是负责初始化计算函数并且重设其内部状态,一般就是重设其内部字段。一般在静态类中定义一个内部字段来存放最终的结果。

揭秘高德地图如何利用MaxCompute管理海量数据

你离开我真会死。 提交于 2020-03-06 10:41:57
摘要 :随着自媒体的发展,传统媒体面临着巨大的压力和挑战,新华智云运用大数据和人工智能技术,致力于为媒体行业赋能。通过媒体大数据开放平台,将媒体行业全网数据汇总起来,借助平台数据处理能力和算法能力,将有价值数据内容和能力开放给用户。本文主要从新华智云数芯平台,媒体行业数据特征,批流处理数据架构,以及通用的媒体大数据平台能力等几个方面介绍了如何基于MaxCompute做媒体大数据开放平台建设。 演讲嘉宾简介: 李金波,新华智云首席数据官。负责阿里巴巴大数据通用计算平台MaxCompute(原ODPS)框架架构。对高可用分布式系统设计开发有多年经验。先后研发过阿里巴巴机器学习平台在线预测系统和通用大数据计算平台框架系统。 本次直播视频精彩回顾,戳这里! https://yq.aliyun.com/live/796 以下内容根据演讲嘉宾视频分享整理而成。 本次的分享主要围绕以下五个方面: 一、关于新华智云 二、数芯-媒体大数据开放平台 三、媒体大数据平台能力 四、Project依赖 五、几点小提示 一、关于新华智云 新华智云是新华社与阿里巴巴合资成立的一家公司,主要面向运用大数据和人工智能技术,致力于为媒体行业赋能。随着自媒体的发展,自媒体公司非常的火热,如今日头条,抖音等。对传统媒体来说,面临着巨大的压力和挑战。传统媒体急切的希望互联网的技术帮助他们赋能。 媒体大脑-数芯

《Hadoop大明白》【2】pyspark的应用场景

[亡魂溺海] 提交于 2020-02-29 07:46:47
1,python的码农涉猎Hadoop,首选pyspark 2,开发spark应用,需要知道的几个点: 【1】SQL语句:insert into / overwirte 【2】DataFrame的常用API 【3】UDF函数 【4】Kafka组件使用 【5】Avro序列化 【6】RDD的坑:谨防嵌套使用 来源: oschina 链接: https://my.oschina.net/u/107574/blog/2962594

新特性解读 | MySQL 8.0.16 组复制通讯协议的设置

浪子不回头ぞ 提交于 2020-02-29 03:38:20
原创作者: 管长龙 标签:Group Communication System, Group Replication, High Availability 背景 在上一篇推文中,我们介绍了 MySQL Group Replication 8.0.16 支持信息碎片化功能来增强大型事务处理能力。 如果您想在组复制中使用该功能,则任何组成员的版本都不能低于 8.0.16! 简单地说就是由于低版本协议上不支持。MySQL 8.0.16 的组通讯开始支持新协议,简称**“分段协议” ,之前的版本中只有一种 “压缩协议”**。 如果多个成员想加入复制组,那么在协议匹配上遵循以下原则: 现有复制组成员和新加入成员版本相同,加入成功。 低版本成员想加入高版本的组会被驱逐,加入失败。 高版本的成员想加入低版本的组,单独加入成功,多个加入失败。 例如: 一个 MySQL Server 8.0.16 实例可以成功加入使用通信协议版本 5.7.24 的组。 一个 MySQL Server 5.7.24 实例无法成功加入使用通信协议版本 8.0.16 的组。 两个 MySQL Server 8.0.16 实例无法同时加入使用通信协议版本 5.7.24 的组。 两个 MySQL Server 8.0.16 实例可以同时加入使用通信协议版本 8.0.16 的组。 新增 UDF

大数据上云第一课:(1)MaxCompute授权和外表操作躲坑指南

隐身守侯 提交于 2020-02-26 04:59:19
一、子账号创建、AK信息绑定 如果您是第一次使用子账号登录数加平台和使用DataWorks,需要确认以下信息: • 该子账号所属主账号的企业别名。 • 该子账号的用户名和密码。 • 该子账号的AccessKey ID和AccessKey Secret。 • 确认主账号已经允许子账号启用控制台登录。 • 确认主账号已经允许子账号自主管理AccessKey。 1、子账号创建 (1)创建子账号 (2)绑定AK信息 (3)DataWorks给定角色 (1)使用阿里云账号(主账号)登录RAM控制台。 (2)在左侧导航栏的人员管理菜单下,单击用户。 (3)单击新建用户。 (4)输入登录名称和显示名称。 (5)在访问方式区域下,选择控制台密码登录。 (6)单击确认。 说明: (1)单击添加用户,可一次性创建多个RAM用户。 (2)RAM用户创建完成后,务必保存用户名和登录密码,并将其告知子账号。 2、创建RAM子账号的访问密钥 访问密钥对开发人员在DataWorks中创建的任务顺利运行非常重要,该密钥区别于登录时填写的账号和密码,主要用于在阿里云各产品间互相认证使用权限。因此主账号需要为子账号创建AccessKey。创建成功后,请尽可能保证AccessKey ID和AccessKey Secret的安全,切勿让他人知晓,一旦有泄漏的风险,请及时禁用和更新。运行密钥AK包括AccessKey

Prevent Excel from saving UDF path to formula cells

岁酱吖の 提交于 2020-02-22 08:54:30
问题 I'm using a custom Add-in which adds functions to Excel, like UDF1(param1, param2). (1) example call in cell: =UDF1(param1, param2) When saving workbook1, which implements UDF(), Excel silently adds the path to the Add-in to each call of UDF(). This can be seen when uninstalling the Add-in and reopening workbook1. Excel asks to update external references, I click "don't update". (2) new cell content: ='\...\user\Desktop\Addin1'!UDF1(param1, param2) How to prevent Excel from saving the path to

Search SQL Server string for values from another table

爱⌒轻易说出口 提交于 2020-01-17 13:27:34
问题 I have a table with column name that has random characters before and after the name ie: Table A : Name ----------------- asd4345JONlkj345 .;lidDavidlksd$ and I have another table in same DB that has the names ie: Table B : Name ------ David Jon This goes on like this for 30k rows or I'd just hardcode something really quick. I want to search each string in Table A 'Name' column for each value from Table B, and if found return the name in a new column. I have a feeling this will be a UDF,

Search SQL Server string for values from another table

谁说胖子不能爱 提交于 2020-01-17 13:27:10
问题 I have a table with column name that has random characters before and after the name ie: Table A : Name ----------------- asd4345JONlkj345 .;lidDavidlksd$ and I have another table in same DB that has the names ie: Table B : Name ------ David Jon This goes on like this for 30k rows or I'd just hardcode something really quick. I want to search each string in Table A 'Name' column for each value from Table B, and if found return the name in a new column. I have a feeling this will be a UDF,

drop and trim a list in aerospike udf

ⅰ亾dé卋堺 提交于 2020-01-14 03:50:11
问题 I try to drop and trim a list to build a pagination system local function createMap(postId, paramDate) local m = map { id = postId, date = paramDate }; return m; end function get(rec, binName, from, to) if aerospike:exists(rec) then local l = rec[binName] if (l == nil) then return nil else local length = #l; if (length <= 10 and to <=10) then return l; elseif (to >= length) then local drop = list.drop(l, from); return drop; else list.trim(l, to);--Remove all elements at and beyond a specified