当前位置: 首页 > news >正文

政府门户网站的建设目标/本周新闻热点10条

政府门户网站的建设目标,本周新闻热点10条,wordpress 注册体验,小程序如何推广参考 https://blog.csdn.net/m53931422/article/details/103633452 https://www.cnblogs.com/jasonlam/p/7928179.html https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF https://medium.com/jackgoettle23/building-a-hive-user-defined-function-f6abe9…

参考

https://blog.csdn.net/m53931422/article/details/103633452
https://www.cnblogs.com/jasonlam/p/7928179.html
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
https://medium.com/@jackgoettle23/building-a-hive-user-defined-function-f6abe92f6e56
https://blog.csdn.net/qq_73339471/article/details/140763754
https://blog.csdn.net/cuichunchi/article/details/109772461
https://blog.csdn.net/weixin_35852328/article/details/86509506
https://cn.vuejs.org/
https://element.eleme.cn/#/zh-CN
https://echarts.apache.org/zh/index.html
https://spring.io/
https://baomidou.com/

本文的视频版本:https://www.bilibili.com/video/BV1itYLe1E8y,讲解更详细

数据

图书外借数据图书预约数据读者入馆数据
字段说明备注字段说明备注字段说明备注
UNIVERSITY_ID学校代码10280UNIVERSITY_ID学校代码UNIVERSITY_ID学校代码10280
PATRON_ID读者IDPATRON_ID读者IDPATRON_ID读者ID
STUDENT_GRADE学生年级STUDENT_GRADE学生年级STUDENT_GRADE学生年级
PATRON_DEPT读者所在院系PATRON_DEPT读者所在院系PATRON_DEPT读者所在院系
PATRON_TYPE读者类型PATRON_TYPE读者类型PATRON_TYPE读者类型
LOAN_DATE外借日期20130422OPEN_DATE预约日期20131231VISIT_TIME入馆时间2013-03-2520:54:42
LOAN_HOUR外借时间1506OPEN_HOUR预约时间1015VISIT_SUBLIBRARY入馆地点01、02、03、04 - 宝山校区
05、06 - 延长校区
07、08、09 - 嘉定校区
DUE_DATE到期日期20130522REQUEST_DATE预约兴趣期开始日期20131231VISIT_TYPE出馆/入馆无该字段
DUE_HOUR到期时间2400END_REQUEST_DATE预约兴趣期结束日期20140228
RETURNED_DATE归还日期20130427HOLD_DATE预约满足日期20140102
RETURNED_HOUR归还时间1512END_HOLD_DATE预约保留日期20140109
RETURNED_LOCATION归还地点无该字段RECALL_STATUS预约催还状态无该字段
RENEWAL_NO续借次数RECALL_DATE催还日期无该字段
LASTRENEW_DATE最后续借日期PROCESSING_DAYS满足时间长度无该字段
RECALL_DATE催还日期EVENT_TYPE预约类型无该字段
RECALL_DUE_DATE催还后应还日期FULFILLED预约需求是否满足Y - 等待中
N - 已满足
HOLD_DAYS外借天数无该字段PICKUP_LOCATION取书点详见附录1
OVERDUE_DAYS逾期天数无该字段SUBLIBRARY图书所在分馆/馆藏地详见附录1
SUBLIBRARY图书所在分馆/馆藏地详见附录1ITEM_ID单册唯一记录号
ITEM_ID单册唯一记录号ITEM_STATUS单册状态详见附录2
ITEM_STATUS单册状态详见附录2ITEM_CALLNO单册索书号
ITEM_CALLNO单册索书号PUBLISH_YEAR图书出版年
PUBLISH_YEAR图书出版年AUTHOR图书作者
AUTHOR图书作者TITLE图书题名
TITLE图书题名PRESS图书出版社
PRESS图书出版社ISBN图书ISBN号
ISBNISBN号ID自动生成序号,主键
ID自动生成序号,主键

image.png
共 1.25G

image.png
共 512MB

image.png
共 22.4 MB

乱码和字段乱序缺失

2019 年的外借数据的字符集为非 UTF-8,
在 Linux 上:

[jxd@102 lend_out]$ file -i lend_out_2019.csv
lend_out_2019.csv: text/plain; charset=unknown-8bitvim 文件后,:set fileencoding=utf-8 设置文件的编码[jxd@102 lend_out]$ file -i lend_out_2019.csv
lend_out_2019.csv: text/plain; charset=utf-8

发现没有解决,不是 Linux 上的乱码,经过排查,其它所有文件在 windows 环境下都为 utf-8 格式,这个文件为 GB2312 编码,使用 notepad++ 打开,设置编码为 utf-8,拷贝全文,新建一个 csv 文件,粘贴,新的 csv 文件的格式就为 utf-8 了。

2019 年外借数据存在缺失 id 字段、字段乱序的情况,导入到 MySQL 中,添加 id 字段,并置为 null (id 字段没有用),以新的字段顺序查询并将依据结果创建新表,再将数据导出为 csv 即可。
2019 年预约数据存在字段乱序情况,用上面的方法处理即可。

csv 的表头问题

每一个 csv 文件的表头都是字段名,导入到 Hive 中会被当作数据,需要删除,在 Linux 中,使用如下命令删除文件的第一行:

sed -i '1d' <fileName>

建表以及加载数据

create database shanghai_edu location '/warehouse/shanghai_edu';// 创建时间维度表
CREATE EXTERNAL TABLE `dim_date`
(`date_key`      STRING COMMENT 'id',`date_ymd`      STRING COMMENT '日期 yy-MM-dd',`date_ch`       STRING COMMENT '中文日期',`dim_year`      STRING COMMENT '年',`quarter_id`    TINYINT COMMENT '季度数字',`quarter_ch`    STRING COMMENT '中文季度',`year_month`    STRING comment '年月',`dim_month`     STRING comment '月份',`dim_day`       STRING COMMENT '一年中的第几天',`dim_month_day` STRING COMMENT '一个月中的第几天',`dim_week`      STRING COMMENT '一年中的第几周 星期一是星期的第一天',`year_week`     STRING COMMENT '年周',`dim_week1`     STRING COMMENT '一年中的第几周 星期天是星期的第一天',`dim_year1`     STRING COMMENT '对应 dim_week1 的年份',`dim_weekday`   STRING COMMENT '一周的中的第几天',`weekday_ch`    STRING COMMENT '星期几',`holiday_name`  STRING COMMENT '节假日名称',`is_day_off`    TINYINT COMMENT '是否放假 1表示放假,0表示不放假 2表示调班'
) COMMENT '时间维度表'ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'location '/warehouse/shanghai_edu/dim/dim_date';load data local inpath '/opt/project/shanghai_edu/data/dim/dim_date.csv' into table shanghai_edu.dim_date;// 创建分场馆维度表
CREATE EXTERNAL TABLE if not exists shanghai_edu.dim_sub_library
(`sub_library_or_pickup_location` STRING COMMENT 'sub_library 或 pickup_location',`sub_library_location_name`      STRING COMMENT '分场馆所在地址'
) COMMENT '分场馆维度表'
STORED AS PARQUET
LOCATION '/warehouse/shanghai_edu/dim/dim_sub_library';
// 创建一张存储格式为 csv 的临时表
CREATE TABLE shanghai_edu.csv_table
(sub_library_or_pickup_location   STRING,sub_library_location_name STRING
)
ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
// 将数据导入到临时表
load data local inpath '/opt/project/shanghai_edu/data/dim/dim_sublibrary.csv' into table shanghai_edu.csv_table;
INSERT overwrite TABLE shanghai_edu.dim_sub_library
SELECT * FROM shanghai_edu.csv_table;
drop table shanghai_edu.csv_table;// 创建入馆表
CREATE external table `ods_enter`
(`university_id`     varchar(100) comment '学校代码 10280',`patron_id`         varchar(100) comment '读者ID',`student_grade`     varchar(100) comment '学生年级',`patron_dept`       varchar(100) comment '读者所在院系',`patron_type`       varchar(100) comment '读者类型',`visit_time`        varchar(100) comment '入馆时间',`visit_sub_library` varchar(100) comment '入馆地点'
)COMMENT '入馆表'partitioned by (`year` string)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"","escapeChar" = "\\")location '/warehouse/shanghai_edu/ods/ods_enter';load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2013.csv' into table shanghai_edu.ods_enter partition (year = '2013');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2014.csv' into table shanghai_edu.ods_enter partition (year = '2014');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2015.csv' into table shanghai_edu.ods_enter partition (year = '2015');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2016.csv' into table shanghai_edu.ods_enter partition (year = '2016');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2017.csv' into table shanghai_edu.ods_enter partition (year = '2017');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2018.csv' into table shanghai_edu.ods_enter partition (year = '2018');
load data local inpath '/opt/project/shanghai_edu/data/enter/enter_2019.csv' into table shanghai_edu.ods_enter partition (year = '2019');// 创建外借表
CREATE external TABLE `ods_lend_out`
(`university_id`   varchar(100) comment '学校代码 10280',`item_id`         varchar(100) comment '单册唯一记录号',`loan_date`       varchar(100) comment '外借日期',`sub_library`     varchar(100) comment '图书所在分馆/馆藏地',`due_date`        varchar(100) comment '到期日期',`loan_hour`       varchar(100) comment '外借时间',`due_hour`        varchar(100) comment '到期时间',`returned_date`   varchar(100) comment '归还日期',`item_status`     varchar(100) comment '单册状态',`returned_hour`   varchar(100) comment '归还时间',`last_renew_date` varchar(100) comment '最后续借日期',`renewal_no`      varchar(100) comment '续借次数',`recall_date`     varchar(100) comment '催还日期',`item_call_no`    varchar(100) comment '单册索书号',`recall_due_date` varchar(100) comment '催还后应还日期',`author`          varchar(100) comment '图书作者',`publish_year`    varchar(100) comment '图书出版年',`press`           varchar(100) comment '图书出版社',`title`           varchar(100) comment '图书题名',`ISBN`            varchar(100) comment 'isbn',`patron_id`       varchar(100) comment '读者ID',`patron_type`     varchar(100) comment '读者类型',`student_grade`   varchar(100) comment '学生年级',`id`              varchar(100) comment 'id',`patron_dept`     varchar(100) comment '读者所在院系'
)COMMENT '外借表'partitioned by (`year` string)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"","escapeChar" = "\\")location '/warehouse/shanghai_edu/ods/ods_lend_out';load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2013.csv' into table shanghai_edu.ods_lend_out partition (year = '2013');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2014.csv' into table shanghai_edu.ods_lend_out partition (year = '2014');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2015.csv' into table shanghai_edu.ods_lend_out partition (year = '2015');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2016.csv' into table shanghai_edu.ods_lend_out partition (year = '2016');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2017.csv' into table shanghai_edu.ods_lend_out partition (year = '2017');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2018.csv' into table shanghai_edu.ods_lend_out partition (year = '2018');
load data local inpath '/opt/project/shanghai_edu/data/lend_out/lend_out_2019.csv' into table shanghai_edu.ods_lend_out partition (year = '2019');// 创建预约表
CREATE external table ods_subscribe
(`university_id`    varchar(100) comment '学校代码 10280',`open_date`        varchar(100) comment '预约日期',`open_hour`        varchar(100) comment '预约时间',`end_request_date` varchar(100) comment '预约兴趣期结束日期',`request_date`     varchar(100) comment '预约兴趣期开始日期',`end_hold_date`    varchar(100) comment '预约保留日期',`hold_date`        varchar(100) comment '预约满足日期',`pickup_location`  varchar(100) comment '取书点',`item_status`      varchar(100) comment '单册状态',`sub_library`      varchar(100) comment '图书所在分馆/馆藏地',`fulfilled`        varchar(100) comment '预约需求是否满足',`item_call_no`     varchar(100) comment '单册索书号',`item_id`          varchar(100) comment '单册唯一记录号',`author`           varchar(100) comment '图书作者',`publish_year`     varchar(100) comment '图书出版年',`press`            varchar(100) comment '图书出版社',`title`            varchar(100) comment '图书题名',`ISBN`             varchar(100) comment '图书 ISBN 号',`patron_id`        varchar(100) comment '读者 ID',`patron_type`      varchar(100) comment '读者类型',`student_grade`    varchar(100) comment '学生年级',`id`               varchar(100) comment 'id',`patron_dept`      varchar(100) comment '读者所在院系'
) COMMENT '预约表'partitioned by (`year` string)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'WITH SERDEPROPERTIES ("separatorChar" = ",","quoteChar" = "\"","escapeChar" = "\\")location '/warehouse/shanghai_edu/ods/ods_subscribe';load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2013.csv' into table shanghai_edu.ods_subscribe partition (year = '2013');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2014.csv' into table shanghai_edu.ods_subscribe partition (year = '2014');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2015.csv' into table shanghai_edu.ods_subscribe partition (year = '2015');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2016.csv' into table shanghai_edu.ods_subscribe partition (year = '2016');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2017.csv' into table shanghai_edu.ods_subscribe partition (year = '2017');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2018.csv' into table shanghai_edu.ods_subscribe partition (year = '2018');
load data local inpath '/opt/project/shanghai_edu/data/subscribe/subscribe_2019.csv' into table shanghai_edu.ods_subscribe partition (year = '2019');

使用 SQL 分析数据

外借次数、外借时间和用户类型的关系

CREATE EXTERNAL TABLE if not exists shanghai_edu.adm_lo_cnt_time_with_type_dd
(`patron_type`      STRING COMMENT '读者类型',`lend_out_cnt`     bigint COMMENT '借出数',`avg_lend_out_cnt` double comment '平均借出数',`min_duration`     double comment '最小借出时间',`avg_duration`     double comment '平均借出时间',`max_duration`     double comment '最大借出时间'
) COMMENT '外借次数、外借时间和用户类型的关系'STORED AS PARQUETLOCATION '/warehouse/shanghai_edu/adm/adm_lo_cnt_time_with_type_dd';insert overwrite table shanghai_edu.adm_lo_cnt_time_with_type_dd
select patron_type, count(*)                                         lend_out_cnt, round(count(*) / count(DISTINCT (patron_id)), 2) avg_lend_out_cnt, round(min((unix_timestamp(returned_date, 'yyyyMMdd') - unix_timestamp(loan_date, 'yyyyMMdd')) /(60 * 60 * 24)), 2)                    min_duration -- 单位为天, round(AVG((unix_timestamp(returned_date, 'yyyyMMdd') - unix_timestamp(loan_date, 'yyyyMMdd')) /(60 * 60 * 24)), 2)                    avg_duration, round(MAX((unix_timestamp(returned_date, 'yyyyMMdd') - unix_timestamp(loan_date, 'yyyyMMdd')) /(60 * 60 * 24)), 2)                    max_duration
from shanghai_edu.ods_lend_out
group by patron_type;

入馆次数、预约次数和读者类型的关系

CREATE EXTERNAL TABLE if not exists shanghai_edu.adm_ent_subscribe_cnt_with_type
(`patron_type`      STRING COMMENT '读者类型',`enter_cnt`        bigint COMMENT '总入馆次数/预约次数',`avg_lend_out_cnt` double comment '平均入馆次数/平均预约次数'
) COMMENT '入馆次数、预约次数和读者类型的关系'partitioned by (stat_type STRING COMMENT '统计类型(enter/subscribe)')STORED AS PARQUETLOCATION '/warehouse/shanghai_edu/adm/adm_ent_subscribe_cnt_with_type';set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table shanghai_edu.adm_ent_subscribe_cnt_with_type partition (stat_type)
select patron_type,count(*)                                         enter_cnt,round(count(*) / count(DISTINCT (patron_id)), 2) avg_enter_cnt,'enter'                                          stat_type
from shanghai_edu.ods_enter
group by patron_type
union all
select patron_type,count(*)                                         sub_cnt,round(count(*) / count(DISTINCT (patron_id)), 2) avg_sub_cnt,'subscribe'                                      stat_type
from shanghai_edu.ods_subscribe
group by patron_type
;

各分馆各年份的预约不满足率

CREATE EXTERNAL TABLE if not exists shanghai_edu.adm_subscribe_no_satisfy_lib_year_stat
(`no_fulfilled_ratio`        double COMMENT '预约不满足率',`sub_library_location_name` string COMMENT '分馆位置',`subscribe_year`            string comment '预约年份'
) COMMENT '各分馆各年份的预约不满足率统计表'STORED AS PARQUETLOCATION '/warehouse/shanghai_edu/adm/adm_subscribe_no_satisfy_lib_year_stat';insert overwrite table shanghai_edu.adm_subscribe_no_satisfy_lib_year_stat
select round(sum(if(fulfilled = '不满足', 1, 0)) / count(1), 4) no_fulfilled_ratio, sub_library_location_name, subscribe_year
from (// @formatter:offselectCASEWHEN fulfilled = 'N' THEN '不满足'WHEN fulfilled = 'Y' THEN '满足'ELSE '不知道'END AS fulfilled,coalesce(b.sub_library_location_name, '-') sub_library_location_name,coalesce(substr(open_date, 1, 4), '-')  subscribe_yearfrom shanghai_edu.ods_subscribe aleft join shanghai_edu.dim_sub_library bon a.sub_library = b.sub_library_or_pickup_location// @formatter:on) tb_tmp
GROUP BY sub_library_location_name, subscribe_year
with cube;

预约不到的 top10 书籍

CREATE EXTERNAL TABLE if not exists shanghai_edu.adm_subscribe_no_satisfy_top
(`ISBN` string COMMENT 'isbn',`cnt`  bigint COMMENT '预约不到次数'
) COMMENT '预约不到的 top10 书籍'STORED AS PARQUETLOCATION '/warehouse/shanghai_edu/adm/adm_subscribe_no_satisfy_top';insert overwrite table shanghai_edu.adm_subscribe_no_satisfy_top
selectISBN,count(1) cnt
from shanghai_edu.ods_subscribe
where fulfilled = 'N' and ISBN != ''
group by ISBN
order by cnt desc
limit 10
;

入馆时间分布

CREATE FUNCTION parseHour AS 'com.jxd.udf.ParseHour' USING JAR 'hdfs:///udf/yelp-udf-1.0-SNAPSHOT.jar';
reload function;
show functions;
drop function if exists formatVisitTime;
DESCRIBE FUNCTION formatVisitTime;CREATE FUNCTION formatVisitTime AS 'com.jxd.udf.FormatVisitTime' USING JAR 'hdfs:///udf/yelp-udf-1.0-SNAPSHOT.jar';CREATE EXTERNAL TABLE if not exists shanghai_edu.adm_enter_time_stat
(`holiday_name` string COMMENT '节日名称',`visit_hour`   string COMMENT '入馆时间(小时)',`cnt`          bigint comment '入馆数量'
) COMMENT '入馆时间分布统计表'
STORED AS PARQUET
LOCATION '/warehouse/shanghai_edu/adm/adm_enter_time_stat';// @formatter:off
insert overwrite table shanghai_edu.adm_enter_time_stat
select holiday_name, visit_hour, count(1) cnt
from
(select if(b.holiday_name is not null and b.holiday_name != '', b.holiday_name, '非节假日') holiday_name, parseHour(a.visit_time)                                                         visit_hourfrom shanghai_edu.ods_enter aleft join shanghai_edu.dim_date b on formatVisitTime(a.visit_time) = b.date_key
) tb_tmp
GROUP BY holiday_name, visit_hour
with cube;
;

hive udf

使用 java 编写一个 hive 的 udf,打包。
将 jar 包上传到 hdfs 上:

hadoop fs -mkdir /udf
hadoop fs -put yelp-udf-1.0-SNAPSHOT.jar /udf/

进入 hive 终端中,使用如下命令创建永久函数:

CREATE FUNCTION upper_case_udf AS 'com.jxd.udf.UpperCaseUDF' USING JAR 'hdfs:///udf/yelp-udf-1.0-SNAPSHOT.jar';

hive 终端当前所处的数据库就是这个函数的默认存放数据库,例如:default,如果是在 default 数据库中创建的 udf,在 default 数据库中使用 udf 就可以不携带数据库前缀,如果是在其他数据库中使用这个函数,就需要使用指定这个函数所在的数据库前缀来使用这个函数,比如:select default.upper_case_udf(‘aaa’);

upper_case_udf 是函数名,com.jxd.udf.UpperCaseUDF 是这个 udf 的类全限定名,最后是 jar 包对应的 hdfs 地址。
可以使用如下命令刷新函数:

RELOAD FUNCTION;

使用如下命令查询某个 udf 的描述:

DESCRIBE FUNCTION <function_name>;

使用如下命令删除函数:

DROP FUNCTION upper_case_udf;

如何在 datagrip 中更新函数:

  • 执行删除函数的命令:
DROP FUNCTION upper_case_udf;
  • 关闭项目,File -> Close Project
  • 重新创建函数
CREATE FUNCTION upper_case_udf AS 'com.jxd.udf.UpperCaseUDF' USING JAR 'hdfs:///udf/yelp-udf-1.0-SNAPSHOT.jar';

导出 hive 数据到 mysql

本次使用 sqoop 将数据导出到 mysql:

bin/sqoop export \
--connect "jdbc:mysql://node112:3306/shanghai_edu?useUnicode=true&characterEncoding=utf-8" \
--username root \
--password 123456 \
--table adm_lo_cnt_time_with_type_dd \
--num-mappers 1 \
--hcatalog-database shanghai_edu \
--hcatalog-table adm_lo_cnt_time_with_type_dd
--hive-partition-key <partition_key> \
--warehouse-dir <hdfs_path_to_hive_table>

导出分区表的所有数据:

bin/sqoop export \
--connect "jdbc:mysql://node112:3306/shanghai_edu?useUnicode=true&characterEncoding=utf-8" \
--username root \
--password 123456 \
--table adm_ent_subscribe_cnt_with_type \
--num-mappers 1 \
--hcatalog-database shanghai_edu \
--hcatalog-table adm_ent_subscribe_cnt_with_type
--hive-partition-key stat_type \
--warehouse-dir /warehouse/shanghai_edu/adm/adm_ent_subscribe_cnt_with_type

问题

windows 上的中文文件名的文件上传到 centos 后变成乱码

原因在于,Windows 的文件名中文编码默认为 GBK,压缩或者上传后,文件名还会是 GBK 编码,而 Linux 中默认文件名编码为 UTF8,由于编码不一致所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。
安装 convmv:

yum install convmv

使用 convmv 将当前文件夹下的所有文件名转为 udf-8 编码:

convmv -f gbk -t utf-8 --notest -r ./

相关文章:

离线数据开发流程小案例-图书馆业务数据

参考 https://blog.csdn.net/m53931422/article/details/103633452 https://www.cnblogs.com/jasonlam/p/7928179.html https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF https://medium.com/jackgoettle23/building-a-hive-user-defined-function-f6abe9…...

GPT-5:未来已来,你准备好了吗

GPT-5&#xff1a;未来已来&#xff0c;你准备好了吗&#xff1f; 在人工智能的浩瀚星空中&#xff0c;自然语言处理&#xff08;NLP&#xff09;技术如同璀璨星辰&#xff0c;不断引领着技术革新的浪潮。而在这股浪潮中&#xff0c;OpenAI的GPT&#xff08;Generative Pre-tr…...

白骑士的Matlab教学高级篇 3.2 并行计算

系列目录 上一篇&#xff1a;白骑士的Matlab教学高级篇 3.1 高级编程技术 并行计算是一种通过同时执行多个计算任务来加速程序运行的方法。在MATLAB中&#xff0c;并行计算工具箱&#xff08;Parallel Computing Toolbox&#xff09;提供了丰富的并行计算功能&#xff0c;使用…...

JS中【解构赋值】知识点解读

解构赋值&#xff08;Destructuring Assignment&#xff09;是 JavaScript 中一种从数组或对象中提取数据的简便方法&#xff0c;可以将其赋值给变量。这种语法可以让代码更加简洁、清晰。下面我会详细讲解解构赋值的相关知识点。 1. 数组解构赋值 数组解构赋值允许你通过位置…...

【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object

【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧&#xff1a;get_json_object 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; …...

第10章 无持久存储的文件系统 (1)

目录 前言 10.1 proc文件系统 10.1.1 /proc 内容 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;查看后续文章。 前言 即存在于内存中的文件系统。如&#xff1a; proc&#xff1a; sysfs&#xff1a; 即/sys目录。 内容不一定是ASCII文本&#xff0c;可能是二进…...

如何把命令行创建python虚拟环境与pycharm项目管理更好地结合起来

1. 问题的提出 我在linux或windows下的某个目录如“X”下使用命令行的方式创建了一个python虚拟环境&#xff08;参考文章&#xff09;&#xff0c;对应的目录为myvenv, 现在我想使用pycharm创建python项目myproject&#xff0c;并且利用虚拟环境myvenv&#xff0c;怎么办&…...

keepalived+lvs高可用负载均衡集群配置方案

配置方案 一、配置主备节点1. 在主备节点上安装软件2. 编写配置文件3. 启动keepalived服务 二、配置web服务器1. 安装并启动http服务2. 编写主页面3.配置虚拟地址4. 配置ARP 三、测试 服务器IP&#xff1a; 主负载均衡服务器 master 192.168.152.71备负载均衡服务器 backup 192…...

Azure OpenAI Swagger Validation Failure with APIM

题意&#xff1a;Azure OpenAI Swagger 验证失败与 APIM 问题背景&#xff1a; Im converting the Swagger for Azure OpenAI API Version 2023-07-01-preview from json to yaml 我正在将 Azure OpenAI API 版本 2023-07-01-preview 的 Swagger 从 JSON 转换为 YAML。 My S…...

haproxy高级功能配置

介绍HAProxy高级配置及实用案例 一.基于cookie会话保持 cookie value:为当前server指定cookie值&#xff0c;实现基于cookie的会话黏性&#xff0c;相对于基于 source 地址hash 调度算法对客户端的粒度更精准&#xff0c;但同时也加大了haproxy负载&#xff0c;目前此模式使用…...

XXL-JOB分布式定时任务框架快速入门

文章目录 前言定时任务分布式任务调度 1、XXL-JOB介绍1.1 XXL-JOB概述1.2 XXL-JOB特性1.3 整体架构 2、XXL-JOB任务中心环境搭建2.1 XXL-JOB源码下载2.2 IDEA导入xxljob工程2.3 初始化数据库2.4 Docker安装任务管理中心 3、XXL-JOB任务注册测试3.1 引入xxl-job核心依赖3.2 配置…...

直流电机及其驱动

直流电机是一种将电能转换为机械能的装置&#xff0c;有两个电极&#xff0c;当电极正接时&#xff0c;电机正转&#xff0c;当电极反接时&#xff0c;电机反转。 直流电机属于大功率器件&#xff0c;GPIO口无法直接驱动&#xff0c;需要配合电机驱动电路来操作 TB6612是一款双…...

Java-判断一个字符串是否为有效的JSON字符串

在 Java 中判断一个字符串是否为有效的 JSON 字符串&#xff0c;可以使用不同的库来进行验证。常见的库 包括 org.json、com.google.gson 和 com.alibaba.fastjson 等。这里我将展示如何使用 com.alibaba.fastjson 库来实现一个简单的工具类&#xff0c;用于判断给定的字符串…...

FPGA开发板的基本知识及应用

FPGA开发板是一种专门设计用于开发和测试现场可编程门阵列(Field-Programmable Gate Array, FPGA)的硬件平台。FPGA是一种高度可配置的集成电路&#xff0c;能够在制造后被编程以执行各种数字逻辑功能。FPGA开发板通常包含一个FPGA芯片以及一系列支持电路和接口&#xff0c;以便…...

JVM知识总结(性能调优)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 性能调优 何时进行JVM调优&#xff1f; 遇到以下情况&#xff0c…...

基于Ascend C的Matmul算子性能优化最佳实践

矩阵乘法是深度学习计算中的基础操作&#xff0c;对于提升模型训练和推理速度至关重要。昇腾AI处理器是一款专门面向AI领域的AI加速器&#xff0c;其AI Core采用达芬奇架构&#xff0c;以高性能Cube计算引擎为基础&#xff0c;针对矩阵运算进行加速&#xff0c;可大幅提高单位面…...

SQL注入之EVAL长度限制突破技巧

要求&#xff1a; PHP Eval函数参数限制在16个字符的情况下 &#xff0c;如何拿到Webshell&#xff1f; widows小皮环境搭建&#xff1a; 使用phpstudy搭建一个网站。 随后在该eval文件夹下创建一个webshell.php文件&#xff0c;并在其输入代码环境 解题思路&#xff1a; 通…...

稀疏注意力:时间序列预测的局部性和Transformer的存储瓶颈

时间序列预测是许多领域的重要问题&#xff0c;包括对太阳能发电厂发电量、电力消耗和交通拥堵情况的预测。在本文中&#xff0c;提出用Transformer来解决这类预测问题。虽然在我们的初步研究中对其性能印象深刻&#xff0c;但发现了它的两个主要缺点:(1)位置不可知性:规范Tran…...

详谈系统中的环境变量

目录 前言1. 指令背后的本质2. 环境变量背后的本质3. 环境变量到底是什么4. 命令行参数5. 本地变量 与 内置命令6. 环境变量的相关命令 前言 相信在 it 行业学习或者工作的小伙伴们&#xff0c;基本都配置过环境变量&#xff08;windows环境下&#xff09;&#xff0c;如果你也…...

RAG与LLM原理及实践(11)--- Milvus hybrid search 源码分析及思想

目录 背景 hybrid search 源码分析 WeightedRanker 源码 hybrid search 核心 参数详解 基本入参 扩展入参 aysnc方式代码调用案例 说明 源码逻辑 prepare 调用过程 stub 调用结果 stub 调用过程 blocking 与 async 调用方式 深入内部core weightedRanker 的ch…...

JavaScript模拟空调效果

JavaScript模拟空调效果https://www.bootstrapmb.com/item/15074 在JavaScript中模拟空调效果主要依赖于前端界面的交互和状态变化&#xff0c;因为实际的温度调节、风扇速度调整等硬件操作无法直接通过JavaScript在浏览器中实现。不过&#xff0c;我们可以通过JavaScript来模…...

14.2 Pandas数据处理

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。 ⭐…...

python学习7---多进程

一、介绍 多进程是指在同一程序中创建多个独立的进程来执行任务。每个进程都有自己独立的内存空间&#xff0c;相互之间不干扰。 因为GIL锁的存在&#xff0c;对于CPU密集型任务&#xff08;例如计算密集型操作&#xff09;&#xff0c;使用多进程可以提高程序的效率。 优点&am…...

基于Spring + Vue的旅游景区项目+源代码+文档说明

文章目录 源代码下载地址项目介绍项目功能界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 基于Spring Vue的旅游景区项目 项目功能 民宿管理员&#xff1a;订单数量统计&#xff0c;订单交易额统计&#xff0c;客房统计饼图&#xff0c;酒店…...

Java后端面试题

Redis缓存穿透、雪崩、击穿&#xff0c;布隆过滤器 一致性hash 一致性hash sharding-jdbc实现一致性hash #一致性hash, 应用在mysql数据库的分库分表上&#xff0c; 现在已经完成了分库分表&#xff0c; 现在的问题出现了&#xff0c; 需要继续新增数据库节点&#xff0c; 请…...

【Git】远程仓库新建分支后,拉到本地开发

1. 在远程仓库上创建分支 2. git fetch origin&#xff1a;在本地同步远程仓库的分支&#xff08;获取远程仓库所有分支的所有修改&#xff09; 3. git remote -a&#xff1a;查看所有分支&#xff08;远程&#xff0b;本地&#xff09; 4. git checkout -b 本地名 远程仓库…...

React H5设置企业级v6版本路由的配置

路由配置是项目开发的必要一环&#xff0c;尤其是目前流行SPA&#xff0c;下面看看如何使用v6版本路由进行合理的H5路由配置 一、基本页面结构&#xff08;目录根据开发要求建&#xff0c;下面仅用于展示配置路由&#xff09; 二、具体文件实现 1. index.tsx import React f…...

【微信小程序】全局配置

1. 全局配置文件及常用的配置项 2.window (1).小程序窗口的组成部分 (2). 了解 window 节点常用的配置项 (3). 设置导航栏的标题 (4). 设置导航栏的背景色 (5). 设置导航栏的标题颜色 (6). 全局开启下拉刷新功能 (7). 设置下拉刷新时窗口的背景色 (8).设置下拉刷新时 loading …...

25届秋招网络安全面试资料库

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…...

Adobe Dimension DN v4.0.2 解锁版下载安装教程 (专业的三维3D建模工具)

前言 Adobe Dimension&#xff08;简称DN&#xff09;是一款3D设计软件&#xff0c;三维合成和渲染工具&#xff0c;2D平面的二维转为3D立体的三维合成工具&#xff0c;用于3Dmax\C4D\MAYA等三维软件生成的效果图&#xff0c;在3D场景中排列对象、图形和光照。3D应用程序使用的…...