大数据学习之Hive——05Hive函数

2023-11-03

一.内置函数

1. 数学函数

Return Type Name(Signature) Description
DOUBLE round(DOUBLE a) 返回对a四舍五入的BIGINT值
DOUBLE round(DOUBLE a, INT d) 返回DOUBLE型d的保留n位小数的DOUBLW型的近似值
BIGINT floor(DOUBLE a) 向下取整
BIGINT ceil(DOUBLE a), ceiling(DOUBLE a) 向上去整
DOUBLE rand(), rand(INT seed) 每行返回一个DOUBLE型随机数seed是随机因子
DOUBLE exp(DOUBLE a), exp(DECIMAL a) 返回e的a幂次方, a可为小数
DOUBLE ln(DOUBLE a), ln(DECIMAL a) 以自然数为底d的对数,a可为小数
DOUBLE log10(DOUBLE a), log10(DECIMAL a) 以10为底d的对数,a可为小数
DOUBLE log2(DOUBLE a), log2(DECIMAL a) 以2为底数d的对数,a可为小数
DOUBLE log(DOUBLE base, DOUBLE a) log(DECIMAL base, DECIMAL a) 以base为底的对数,base 与 a都是DOUBLE类型
DOUBLE pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p) 计算a的p次幂
DOUBLE sqrt(DOUBLE a), sqrt(DECIMAL a) 计算a的平方根
STRING bin(BIGINT a) 计算二进制a的STRING类型,a为BIGINT类型
STRING hex(BIGINT a) hex(STRING a) hex(BINARY a) 计算十六进制a的STRING类型,如果a为STRING类型就转换成字符相对应的十六进制
BINARY unhex(STRING a) hex的逆方法
STRING conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base) 将GIGINT/STRING类型的num从from_base进制转换成to_base进制
DOUBLE abs(DOUBLE a) 计算a的绝对值
INT or DOUBLE pmod(INT a, INT b), pmod(DOUBLE a, DOUBLE b) a对b取模
DOUBLE sin(DOUBLE a), sin(DECIMAL a) 求a的正弦值
DOUBLE asin(DOUBLE a), asin(DECIMAL a) 求d的反正弦值
DOUBLE cos(DOUBLE a), cos(DECIMAL a) 求余弦值
DOUBLE acos(DOUBLE a), acos(DECIMAL a) 求反余弦值
DOUBLE tan(DOUBLE a), tan(DECIMAL a) 求正切值
DOUBLE atan(DOUBLE a), atan(DECIMAL a) 求反正切值
DOUBLE degrees(DOUBLE a), degrees(DECIMAL a) 奖弧度值转换角度值
DOUBLE radians(DOUBLE a), radians(DOUBLE a) 将角度值转换成弧度值
INT or DOUBLE positive(INT a), positive(DOUBLE a) 返回a
INT or DOUBLE negative(INT a), negative(DOUBLE a) 返回a的相反数
DOUBLE or INT sign(DOUBLE a), sign(DECIMAL a) 如果a是正数则返回1.0,是负数则返回-1.0,否则返回0.0
DOUBLE e() 数学常数e
DOUBLE pi() 数学常数pi
BIGINT factorial(INT a) 求a的阶乘
DOUBLE cbrt(DOUBLE a) 求a的立方根
INT BIGINT shiftleft (TINYINT\SMALLINT\INT a, INT b) shiftleft(BIGINT a, INT b) 按位左移
INT BIGINT shiftright(TINYINT\SMALLINT\INT a, INTb) shiftright(BIGINT a, INT b) 按拉右移
INT BIGINT shiftrightunsigned(TINYINT\SMALLINT\INTa, INT b), shiftrightunsigned(BIGINT a, INT b) 无符号按位右移(<<<)
T greatest(T v1, T v2, …) 求最大值
T least(T v1, T v2, …) 求最小值
  • 部分代码示例

     select round(3.1415);
     select round(3.1415, 2);
     select floor(3.1415);
     select ceil(3.1415);
     select rand();
     select rand(4);
     select exp(2);
     select pi();
     select e();
     select sin(pi()/2);
     select factorial(5);
     select greatest(3, 4, 5, 6);
     select least(3, 4, 5, 6);
    

2. 集合函数

Return Type Name(Signature) Description
int size(Map<K.V>) 求map的长度
int size(Array) 求数组的长度
array map_keys(Map<K.V>) 返回map中的所有key
array map_values(Map<K.V>) 返回map中的所有value
boolean array_contains(Array, value) 如该数组Array包含value返回true。,否则返回false
array sort_array(Array) 按自然顺序对数组进行排序并返回
  • 部分代码示例

    # 奇数位置表示key, 偶数位置表示value
    select size(map(1,2,3,4));
    select map_keys(map(1,2,3,4));
    select map_values(map(1,2,3,4));
    

    在这里插入图片描述

    # 查询数组长度
    select size(Array(1,3,4,2))
    # 判断元素是否在数组中
    select array_contains(Array(1,3,4,2), 4);
    select array_contains(Array(1,3,4,2), 6);
    # 对数组进行自然排序
    select sort_array(Array(1,3,4,2));
    

    在这里插入图片描述

3. 类型转换函数

Return Type Name(Signature) Description
binary binary(string/binary) 将输入的值转换成二进制
Expected “=” to follow “type” cast(expr as ) 将expr转换成type类型 如:cast(“1” as BIGINT) 将字符串1转换成了BIGINT类型,如果转换失败将返回NULL

4. 日期函数

Return Type Name(Signature) Description
string from_unixtime(bigint unixtime[, string format]) 将时间的秒值转换成format格式
bigint unix_timestamp() 获取本地时区下的时间戳
bigint unix_timestamp(string date) 将格式为yyyy-MM-dd HH:mm:ss的时间字符串转换成时间戳
bigint unix_timestamp(string date, string pattern) 将指定时间字符串格式字符串转换成Unix时间戳,如果格式不对返回0
string to_date(string timestamp) 返回时间字符串的日期部分
int year(string date) 返回时间字符串的年份部分
int quarter(date/timestamp/string) 返回当前时间属性哪个季度
int month(string date) 返回时间字符串的月份部分
int day(string date) dayofmonth(date) 返回时间字符串的天
int hour(string date) 返回时间字符串的小时
int minute(string date) 返回时间字符串的分钟
int second(string date) 返回时间字符串的秒
int weekofyear(string date) 返回时间字符串位于一年中的第几个周内
int datediff(string enddate, string startdate) 计算开始时间startdate到结束时间enddate相差的天数
string date_add(string startdate, int days) 从开始时间startdate加上days
string date_sub(string startdate, int days) 从开始时间startdate减去days
timestamp from_utc_timestamp(timestamp, string timezone) 如果给定的时间戳并非UTC,则将其转化成指定的时区下时间戳
timestamp to_utc_timestamp(timestamp, string timezone) 如果给定的时间戳指定的时区下时间戳,则将其转化成UTC下的时间戳
date current_date 返回当前时间日期
timestamp current_timestamp 返回当前时间戳
string add_months(string start_date, int num_months) 返回当前时间下再增加num_months个月的日期
string last_day(string date) 返回这个月的最后一天的日期
string next_day(string start_date, string day_of_week) 返回当前时间的下一个星期X所对应的日期
string trunc(string date, string format) 返回时间的最开始年份或月份
double months_between(date1, date2) 返回date1与date2之间相差的月份
string date_format(date/timestamp/string ts, string fmt) 按指定格式返回时间date
  • 部分代码示例

    select from_unixtime(1734567654, 'yyyy/mm/dd');
    select unix_timestamp();
    select unix_timestamp("2020-4-26 12:32:17");
    select unix_timestamp("2020/04/26 12:32:17", "yyyy/MM/dd hh:mm:ss");
    select to_date("2020-04-26 12:32:17");
    select year("2012-12-21");
    select month("2012-12-21");
    select day("2012-12-21");
    select hour("12:3:21");
    select minute("12:32:34");
    select second("12:32:34");
    select weekofyear("2012-12-21");
    select datediff("2020-04-26", "1996-03-10");
    select date_add("2020-04-26", 5);
    select date_sub("2020-04-26", 5);
    select current_date();
    select current_timestamp();
    select add_months("2020-04-26", 3);
    select last_day("2020-04-26");
    

5. 条件函数

Return Type Name(Signature) Description
T if(boolean testCondition, T valueTrue, T valueFalseOrNull) 如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull
T nvl(T value, T default_value) 如果value值为NULL就返回default_value,否则返回value
T COALESCE(T v1, T v2, …) 返回第一非null的值,如果全部都为NULL就返回NULL
T CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END 如果a=b就返回c,a=d就返回e,否则返回f
T CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END 如果a=ture就返回b,c= ture就返回d,否则返回e
boolean isnull(a) 如果a为null就返回true,否则返回false
boolean isnotnull (a) 如果a为非null就返回true,否则返回false

6. 字符函数

Return Type Name(Signature) Description
int ascii(string str) 返回str中首个ASCII字符串的整数值
string base64(binary bin) 将二进制bin转换成64位的字符串
string concat(string/binary A, string/binary B…) 对二进制字节码或字符串按次序进行拼接
array<struct<string,double>> context_ngrams(array<array>, array, int K, int pf) 与ngram类似,但context_ngram()允许你预算指定上下文(数组)来去查找子序列
string concat_ws(string SEP, string A, string B…) 与concat()类似,但使用指定的分隔符喜进行分隔
string concat_ws(string SEP, array) 拼接Array中的元素并用指定分隔符进行分隔
string decode(binary bin, string charset) 使用指定的字符集charset将二进制值bin解码成字符串
binary encode(string src, string charset) 使用指定的字符集charset将字符串编码成二进制值
int find_in_set(string str, string strList) 返回以逗号分隔的字符串中str出现的位置,如果参数str为逗号或查找失败将返回0,如果任一参数为NULL将返回NULL
string format_number(number x, int d) 将数值X转换成"#,###,###.##"格式字符串,并保留d位小数,如果d为0,将进行四舍五入且不保留小数
string get_json_object(string json_string, string path) 从指定路径上的JSON字符串抽取出JSON对象,并返回这个对象的JSON格式,如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制
boolean in_file(string str, string filename) 如果文件名为filename的文件中有一行数据与字符串str匹配成功就返回true
int instr(string str, string substr) 查找字符串str中子字符串substr出现的位置,如果查找失败将返回0,如果任一参数为Null将返回null,注意位置为从1开始的
int length(string A) 返回字符串的长度
int locate(string substr, string str[, int pos]) 查找字符串str中的pos位置后字符串substr第一次出现的位置
string lower(string A) lcase(string A) 将字符串A的所有字母转换成小写字母
string lpad(string str, int len, string pad) 从左边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分
string ltrim(string A) 去掉字符串A前面的空格
array<struct<string,double>> ngrams(array<array>, int N, int K, int pf) 返回出现次数TOP K的的子序列,n表示子序列的长度
string parse_url(string urlString, string partToExtract [, string keyToExtract]) 返回从URL中抽取指定部分的内容,参数url是URL字符串,而参数partToExtract是要抽取的部分,这个参数包含(HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO
string printf(String format, Obj… args) 按照printf风格格式输出字符串
string regexp_extract(string subject, string pattern, int index) 抽取字符串subject中符合正则表达式pattern的第index个部分的子字符串,注意些预定义字符的使用,如第二个参数如果使用’\s’将被匹配到s,’\s’才是匹配空格
string regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) 按照Java正则表达式PATTERN将字符串INTIAL_STRING中符合条件的部分成REPLACEMENT所指定的字符串,如里REPLACEMENT这空的话,抽符合正则的部分将被去掉
string repeat(string str, int n) 重复输出n次字符串str
string reverse(string A) 反转字符串
string rpad(string str, int len, string pad) 从右边开始对字符串str使用字符串pad填充,最终len长度为止,如果字符串str本身长度比len大的话,将去掉多余的部分
string rtrim(string A) 去掉字符串后面出现的空格
array<array> sentences(string str, string lang, string locale) 字符串str将被转换成单词数组
string space(int n) 返回n个空格
array split(string str, string pat) 按照正则表达式pat来分割字符串str,并将分割后的数组字符串的形式返回
map<string,string> str_to_map(text[, delimiter1, delimiter2]) 将字符串str按照指定分隔符转换成Map,第一个参数是需要转换字符串,第二个参数是键值对之间的分隔符,默认为逗号;第三个参数是键值之间的分隔符,默认为"="
string substr(string/binary A, int start) substring(string/binary A, int start) 对于字符串A,从start位置开始截取字符串并返回
string substr(string/binary A, int start, int len) substring(string/binary A, int start, int len) 对于二进制/字符串A,从start位置开始截取长度为length的字符串并返回
string substring_index(string A, string delim, int count) 截取第count分隔符之前的字符串,如count为正则从左边开始截取,如果为负则从右边开始截取
string translate(string/char/varchar input, string/char/varchar from, string/char/varchar to) 将input出现在from中的字符串替换成to中的字符串
string trim(string A) 将字符串A前后出现的空格去掉
binary unbase64(string str) 将64位的字符串转换二进制值
string upper(string A) ucase(string A) 将字符串A中的字母转换成大写字母
string initcap(string A) 将字符串A转换第一个字母大写其余字母的字符串
int levenshtein(string A, string B) 计算两个字符串之间的差异大小
string soundex(string A) 将普通字符串转换成soundex字符串

7. 聚合函数

Return Type Name(Signature) Description
BIGINT count(*) 统计总行数,包括含有NULL值的行
BIGINT count(expr) 统计提供非NULL的expr表达式值的行数
BIGINT count(DISTINCT expr[, expr…]) 统计提供非NULL且去重后的expr表达式值的行数
DOUBLE sum(col), sum(DISTINCT col) sum(col),表示求指定列的和,sum(DISTINCT col)表示求去重后的列的和
DOUBLE avg(col), avg(DISTINCT col) avg(col),表示求指定列的平均值,avg(DISTINCT col)表示求去重后的列的平均值
DOUBLE min(col) 求指定列的最小值
DOUBLE max(col) 求指定列的最大值
DOUBLE variance(col), var_pop(col) 求指定列数值的方差
DOUBLE var_samp(col) 求指定列数值的样本方差
DOUBLE stddev_pop(col) 求指定列数值的标准偏差
DOUBLE stddev_samp(col) 求指定列数值的样本标准偏差
DOUBLE covar_pop(col1, col2) 求指定列数值的协方差
DOUBLE covar_samp(col1, col2) 求指定列数值的样本协方差
DOUBLE corr(col1, col2) 返回两列数值的相关系数
DOUBLE percentile(BIGINT col, p) 返回col的p%分位数
  • 部分函数示例:

    select count(*) from student;
    select sum(age) from student;
    select avg(age) from student;
    select max(age) from student;
    select min(age) from student;
    

8. 表生成函数

Return Type Name(Signature) Description
Array Type explode(array a) 对于a中的每个元素,将生成一行且包含该元素
N rows explode(ARRAY) 每行对应数组中的一个元素
N rows explode(MAP) 每行对应每个map键-值,其中一个字段是map的键,另一个字段是map的值
N rows posexplode(ARRAY) 与explode类似,不同的是还返回各元素在数组中的位置
N rows stack(INT n, v_1, v_2, …, v_k) 把M列转换成N行,每行有M/N个字段,其中n必须是个常数
tuple json_tuple(jsonStr, k1, k2, …) 从一个JSON字符串中获取多个键并作为一个元组返回,与get_json_object不同的是此函数能一次获取多个键值
tuple parse_url_tuple(url, p1, p2, …) 返回从URL中抽取指定N部分的内容,参数url是URL字符串,而参数p1,p2,…是要抽取的部分,这个参数包含HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO, QUERY:
/ inline(ARRAY<STRUCT[,STRUCT]>) 将结构体数组提取出来并插入到表中

二. 自定义函数

UDF(user-defined function)作用于单个数据行,产生一个数据行作为输出。(数学函数,字 符串函数)
UDAF(用户定义聚集函数 User- Defined Aggregation Funcation):接收多个输入数据行,并产 生一个输出数据行。(count,max)
UDTF(表格生成函数 User-Defined Table Functions):接收一行输入,输出多行(explode)

1. 简单UDF示例

  1. 导入hive需要的jar包,自定义一个java类继承UDF,重载 evaluate 方法

    import org.apache.hadoop.hive.ql.exec.UDF;
    public class ToLowerCase extends UDF{
        // 必须是 public,并且 evaluate 方法可以重载
        public String evaluate(String field) {
            String result = field.toLowerCase();
            return result;
        }   
    }
    
  2. 打成 jar 包上传到服务器

  3. 将 jar 包添加到 hive 的 classpath

    add JAR 路径/***.jar;
    
  4. 创建临时函数与开发好的 class 关联起来

    create temporary function tolowercase as 'com.study.hive.udf.ToLowerCase';
    
  5. 至此,便可以在 Hive SQL使用自定义的函数

    select tolowercase('HELLO');
    

2. JSON数据解析UDF开发

  1. get_json_object(string json_string, string path)
    解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。 这个函数每次只能返回一个数据项。

  2. json_tuple(jsonStr, k1, k2, …)
    参数为一组键k1,k2……和JSON字符串,返回值的元组。该方法比 get_json_object 高效,因为可以在一次调用中输入多个键

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据学习之Hive——05Hive函数 的相关文章

  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • Hive:如何分解嵌入 CSV 文件中的 JSON 列?

    从 CSV 文件 带有标题和管道分隔符 中 我得到了以下两个内容 其中包含一个 JSON 列 内部有一个集合 如下所示 第一种情况 使用没有名称的 JSON 集合 ProductId IngestTime ProductOrders 918
  • Flume将数据从MySQL迁移到Hadoop

    请分享您的想法 需求是将MySQL db中的数据迁移到Hadoop HBase进行分析 数据应该实时或接近实时地迁移 Flume可以支持这个吗 有什么更好的方法 据我了解 Flume 并不是为此而设计的 Flume 基本上用于读取日志 如数
  • Hadoop 推测任务执行

    在Google的MapReduce论文中 他们有一个备份任务 我认为这与Hadoop中的推测任务是一样的 推测任务是如何实现的 当我启动一项推测任务时 该任务是从一开始就作为较旧且缓慢的任务开始 还是从较旧的任务到达的位置开始 如果是这样
  • 名称节点处于安全模式

    我提到了这些问题名称节点处于安全模式 无法离开 https stackoverflow com questions 15803266 name node is in safe mode not able to leave and SafeM
  • 从 Spark 访问 Hdfs 会出现令牌缓存错误 Can't get Master Kerberosprincipal for use as renewer

    我正在尝试运行测试 Spark 脚本 以便将 Spark 连接到 hadoop 脚本如下 from pyspark import SparkContext sc SparkContext local Simple App file sc t
  • java.lang.ClassNotFoundException:找不到类 org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem

    我是 Spark 和 Kubernetes 世界的新手 我使用 docker image tool sh 实用程序使用与 Hadoop 3 2 捆绑在一起的官方 Spark 3 0 1 构建了 Spark docker 映像 我还为 Jup
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • Hadoop 上的 Sqoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted() [重复]

    这个问题在这里已经有答案了 我在 Google Cloud DataProc 上的 hadoop 上运行 sqoop 以通过 Cloud SQL 代理访问 postgresql 但遇到 Java 依赖项错误 INFO First Cloud
  • 在蜂巢中出现错误

    当我连接到 ireport 时 如果说在 hive shell 中显示表 则会出现此错误 元数据错误 java lang RuntimeException 无法实例化 org apache hadoop hive metastore Hiv
  • Hadoop-reducer 如何获取数据?

    据我所知 映射器为每个减速器生成 1 个分区 减速器如何知道要复制哪个分区 假设有 2 个节点运行用于字数统计程序的映射器 并且配置了 2 个缩减器 如果每个映射节点生成 2 个分区 并且两个节点中的分区都可能包含相同的单词作为键 那么减速
  • Mapreduce shuffle 阶段出现内存不足错误

    我在运行时遇到奇怪的错误类似字数统计映射缩减程序 我有一个包含 20 个从站的 hadoop 集群 每个从站都有 4 GB RAM 我将 Map 任务配置为 300MB 堆 Reduce 任务槽为 1GB 我每个节点有 2 个映射槽和 1
  • 使用 org.apache.hadoop/* 依赖项离线编译 sbt 时遇到的问题

    使用依赖于 org apache hadoop 包的 sbt 进行离线编译时遇到很多麻烦 一个简单的build sbt name Test version 1 0 scalaVersion 2 10 4 libraryDependencie
  • 如何强制 Spark 执行代码?

    我如何强制 Spark 执行对 map 的调用 即使它认为由于其惰性求值而不需要执行它 我试过把cache 与地图调用 但这仍然没有解决问题 我的地图方法实际上将结果上传到 HDFS 所以 它并非无用 但 Spark 认为它是无用的 简短回
  • 使用 Java API 在 Hadoop 中移动文件?

    我想使用 Java API 在 HDFS 中移动文件 我想不出办法做到这一点 FileSystem 类似乎只想允许在本地文件系统之间移动 但我想将它们保留在 HDFS 中并将它们移动到那里 我错过了一些基本的东西吗 我能想到的唯一方法是从输
  • Impala:如何查询具有不同模式的多个镶木地板文件

    在 Spark 2 1 中我经常使用类似的东西 df spark read parquet path to my files parquet 即使具有不同的模式 也可以加载镶木地板文件的文件夹 然后我使用 SparkSQL 对数据帧执行一些
  • 如何对 RDD 进行分区

    我有一个文本文件 其中包含大量由空格分隔的随机浮动值 我正在将此文件加载到 scala 中的 RDD 中 这个RDD是如何分区的 另外 是否有任何方法可以生成自定义分区 以便所有分区都具有相同数量的元素以及每个分区的索引 val dRDD

随机推荐

  • 刷脸支付带给人们真切的便捷和科技感

    刷脸支付异军突起的背后 是国内人脸识别功能等人工智能新技术与完备的硬件基础 通讯基础和数据基础共同作用的结果 随着今年5G的大规模商用 5G必然为其提供更多应用可能性 让刷脸支付与不同平台 企业 场景中的协作创新更加完备 可以预见 当刷脸支
  • 嵌入式开发人员-经历汇总

    目录 1 迷茫与前行 2 嵌入式到底该怎么学 2 1 单片机开发 2 2 Linux应用开发 3 嵌入式技术学习路线分享 4 单片机实习经历 2021年秋招记录 怀科同学 申明本文旨在为嵌入式工作提供入门建议 搬运总结 也会有自己的经验总结
  • 图论-最短路问题

    首先明确一个代码实现时候的问题 为什么使用0x3f3f3f3f而不是0x7f7f7f7f来表示无穷大INF 虽然0x7f7f7f7f确实更大而且符号位是0 但是在最短路算法中 经常出现形如min a a b 的表达式 如果此时a与b都是IN
  • AI焦虑潮下,打工人的抵抗、转向、破局

    一股 AI让人下岗 的焦虑 正在蔓延 蔓延到了 这里 不同于区块链 元宇宙和web3 2023年的这股AI浪潮真正席卷了所有人 在大厂 大佬和投资人们为船票激烈角逐的同时 Midjouney ChatGPT Notion AI等工具的惊人效
  • 闲鱼副业是什么?闲鱼副业应该怎么做?

    闲鱼副业是什么 闲鱼副业应该怎么做 有人会问 闲鱼现在还能做吗 还能赚钱吗 对于这样的问题 我只想说 其实再不好的行业 都有赚钱的牛人 再赚钱的领域 同样也有挣不到钱的人 所以 对于赚钱 有一句话是这样说的 没有不赚钱的项目 只有不会赚钱的
  • GPT专业应用:撰写工作简报

    图片由Lexica 生成 输入 Workers working overtime 工作简报 作为一种了解情况 沟通信息的有效手段 能使上级机关和领导及时了解 掌握所属部门的政治学习 军事训练 行政管理等方面的最新情况 同时 能和同级单位 部
  • FLEX & BISON 联合使用

    flex是词法分析器 bison是语法分析器 基本原理就是flex解析出token后 让bison来使用 实际上 一般是先编写bison脚本 里面的token就是一个定义 没有实现 里面的yylex也是没有实现 只有定义 为什么先做biso
  • 路由(route) 交换机(switch)简介

    路由 route 1 数据包从源地址到目的地址所经过的路径 由一系列路由节点组成 2 某个路由节点为数据包选择投递方向的选路过程 它是连接因特网中各局域网 广域网的设备 一 工作原理 工作于OSI七层协议中的第三层 接收来自一个网络接口的数
  • 租赁行业如何将电子合同活用起来?

    在租赁行业 采取传统纸质合同签署租赁类合同 需要相关人员全部在场签订 效率低下 随着互联网行业的发展 租房 租车等各种租赁类业务逐渐迁移到了线上 互联网租赁平台也因此应运而生 但也带来了各种问题 身份核实困难 中介越过平台做私单 诈骗租赁物
  • 线性代数 --- LU分解(Gauss消元法的矩阵表示)

    Gauss消元法等价于把系数矩阵A分解成两个三角矩阵L和U的乘法 首先 LU分解实际上就是用矩阵的形式来记录的高斯消元的过程 其中 对矩阵A进行高斯消元后的结果为矩阵U 是LU分解后的两个三角矩阵中其中之一 U是一个上三角矩阵 U就是上三角
  • elasticsearch 5.x删除index/type

    elasticsearch 5 x删除index 在head插件中执行 DELETE ip port index 看到 acknowledge true 即为成功 elasticsearch 5 x删除type 在kibana界面 dev
  • java 参数明明名字都是对的为什么值传不过来

    java 参数明明名字都是对的为什么值传不过来 那是因为值的类型不一样 导致匹配不上 一个是long 一个是string
  • C++数据结构笔记(3)线性表的链式存储底层实现

    本系列的帖子并不包含全部的基础知识 只挑一部分最核心的知识点总结 着重于具体的实现细节而并非理论的知识点总结 大家按需阅读学习 链表的核心概念总结如下 1 链式存储不需要连续的内存空间 2 链表由一系列的结点组成 每个节点包含两个域 分别是
  • Unity获得当前场景所有物体

    前言 1 GameObject FindObjectsOfType typeof GameObject 只能获得所有active物体 2 GameObject FindObjectsOfTypeAll该方法已过时 解决方案 可以使用Reso
  • 定义一个Student类,成员变量有姓名、年龄;用数组存5个学生对象,并输出

    public class Student String name int age public Student String name int age this name name this age age public class tex
  • IntersectionObserver实现图片懒加载(超详细!)

    关于IntersectionObserver 官方上说明是提供了一种异步观察目标元素与其祖先元素或顶级文档视窗 viewport 交叉状态的方法 祖先元素与视窗 viewport 被称为根 root 具体的内容可以参考官网解释 https
  • 前端三小时用html和js写一个贪吃蛇游戏,非常简单带讲解,代码可直接用,功能完整

    目录 游戏主体部分 普通模式 游戏主体部分 地狱模式 游戏主页入口 预览图 游戏入口代码 1 html 2 css 3 js 注册页面代码 游戏实现很简单 只写游戏主体的话只要三小时就够了 话不多说 我们直接来看效果预览 转成gif图之后有
  • MATLAB读dat文件中存储的十六进制数

    搞了好久都没搞懂为什么MATLAB里load textread都打不开区区一个十六进制文件 经过不懈的寻找 发现fopen fread就是永远滴神 果然灯下黑 data zeros 1 1000 fid fopen 1 dat rb row
  • 云服务器有比虚拟主机好吗,云服务器有比虚拟主机好吗

    云服务器有比虚拟主机好吗 内容精选 换一换 在高可用部署场景下 ASCS主备节点通过共享盘实现数据同步 本章节指导用户将ASCS主节点的数据盘绑定给ASCS备节点并为ASCS主备节点绑定浮动IP 已在SAP ASCS主备节点之间进行过相互的
  • 大数据学习之Hive——05Hive函数

    一 内置函数 1 数学函数 Return Type Name Signature Description DOUBLE round DOUBLE a 返回对a四舍五入的BIGINT值 DOUBLE round DOUBLE a INT d