Hive中自定义函数的使用

news/2024/11/6 3:11:49 标签: hive, hadoop, 数据仓库

用java代码编写,继承UDF类即可

然后打包,导入hive中,再创建个函数名就能使用

hive: add jar '/路径/xxx.jar';
hive: create function 函数名 as '主类名';

以下用计算地球间两点的距离的为例

import org.apache.hadoop.hive.ql.exec.UDF;

public class CalculateLength extends UDF {
    /**
     * 地球半径
     */
    private static final double EARTH_RADIUS = 6378137;

    /**
     * 计算两个经纬度之间的距离
     *
     * @param longi1 经度1
     * @param lati1  纬度1
     * @param longi2 经度2
     * @param lati2  纬度2
     * @return 距离
     */
    public double evaluate(double longi1, double lati1, double longi2, double lati2) {
        double lat21 = lati1 * Math.PI / 180.0;
        double lat22 = lati2 * Math.PI / 180.0;
        double a = lat21 - lat22;
        double b = (longi1 - longi2) * Math.PI / 180.0;
        double sa2 = Math.sin(a / 2.0);
        double sb2 = Math.sin(b / 2.0);
        double d = 2 * EARTH_RADIUS * Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat21) * Math.cos(lat22) * sb2 * sb2));
        return Math.abs(d);
    }
}


http://www.niftyadmin.cn/n/5740096.html

相关文章

Go:struct结构体和继承

文章目录 结构体概念结构体定义结构体生成递归结构体结构体转换 使用工厂方法创建结构体实例如何强制使用工厂方法 带标签的结构体匿名字段内嵌结构体命名冲突方法定义函数和方法的区别指针或值作为接受者方法和未导出字段多重继承总结 格式化描述符垃圾回收和 SetFinalizer 结…

推荐一款高级的安装程序打包工具:Advanced Installer Architect

AdvanCEd Installer Architect是一款高级的安装程序打包工具,我们有时候可能用nsis用的多,Advanced Installer Architect也是一款打包工具,有兴趣的朋友也可以试试。有了Advanced Installer Architect你就可以创建MSI打包。 主要功能 *先进的…

第三篇: 如何将本地CSV文件上传到Google BigQuery并在Google控制台中查看结果

如何将本地CSV文件上传到Google BigQuery并在Google控制台中查看结果 在大数据分析中,很多数据以CSV格式保存,例如来自Kaggle等平台的一些消费数据、房产价格数据等。将这些CSV文件上传到Google BigQuery并使用Python进行操作,可帮助高效管理…

一条sql语句是怎么执行的?

一、问题 InnoDB存储引擎,执行了下列语句: UPDATE user SET name "小明" WHERE id1002; 其中id是主键,这条SQL语句的执行过程是怎样的? 二、答案 首先客户端与MySQL连接器进行连接,然后分析器经过词法…

跳蚤市场之商品发布功能

一 商品类别和小类的联动 以下是一个示例代码&#xff0c;展示了如何实现商品类别中大类和小类的联动。 商品大类选择框、小类选择框 的设计 html部分 <form id"category-form"><label for"major-category">大类&#xff1a;</label&g…

Oracle 第22章:数据仓库与OLAP

第22章&#xff1a;数据仓库与OLAP 1. 数据仓库概念 数据仓库&#xff08;Data Warehouse, DW&#xff09; 是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策。数据仓库中的数据通常来自不同的操作型系统或外部数据源&#xff0c;…

MUSICGEN容器构建指南

一、介绍 MUSICGEN 项目是一个由 Meta&#xff08;原 Facebook&#xff09;公司推出的开源 AI 作曲项目&#xff0c;该项目展示了 AI 在音乐创作领域的潜力和创新应用。以下是对 MUSICGEN 项目的详细介绍&#xff1a; 1.项目背景与目的 公司背景 &#xff1a;Meta 公司是全球…

vue3中setup的作用是什么?

Vue 3.0中的setup函数是一个全新的选项&#xff0c;它是在组件创建时执行的一个函数&#xff0c;用于替代Vue2.x中的beforeCreate和created钩子函数。setup函数的作用是将组件的状态和行为进行分离&#xff0c;使得组件更加清晰和易于维护。 在本文中&#xff0c;我们将详细讲解…