hive的几种复杂数据类型
Hive的几种复杂数据类型
Hive 提供了几种复杂数据类型,能够支持更灵活和多样的数据存储。这些复杂数据类型对于处理嵌套数据或不规则数据特别有用。主要包括以下几种:
文章目录
- Hive的几种复杂数据类型
- 1. 数组(ARRAY)
- 2. 结构体(STRUCT)
- 3.映射(MAP)
- 4. 联合类型(UNIONTYPE)
- 5. 复杂数据类型的嵌套使用
- 综合案列
- hive复杂数据类型运用场景总结
1. 数组(ARRAY)
数组类型用于存储同一数据类型的多个元素。数组中的元素是有序的,可以通过索引访问。
ARRAY<type>
示例
假设我们有一个存储学生信息的表,每个学生可以有多个考试成绩我们,可以为数组类型列添加注释,说明数组的用途和存储的元素类型。
CREATE TABLE student_scores (student_id INT COMMENT '学生的唯一标识符',student_name STRING COMMENT '学生的姓名',scores ARRAY<INT> COMMENT '学生的考试成绩,包含多个成绩值'
);
---插入
INSERT INTO student_scores VALUES (1, 'Alice', ARRAY(90, 85, 88));
INSERT INTO student_scores VALUES (2, 'Bob', ARRAY(78, 82, 75));---查询
SELECT student_name, scores FROM student_scores;
---访问数组元素
SELECT student_name, scores[0] FROM student_scores;获取第一个成绩
2. 结构体(STRUCT)
结构体类型用于存储一组不同类型的字段。可以将多个不同类型的数据组合在一个字段中。
STRUCT<field1:type1, field2:type2, ...>
假设我们有一个包含员工信息的表,每个员工有多个字段,如姓名、薪资和入职日期:
CREATE TABLE employees (emp_id INT COMMENT '员工的唯一标识符',emp_info STRUCT<name:STRING, salary:FLOAT, join_date:DATE> COMMENT '包含员工的姓名、薪资和入职日期的结构体'-- 结构体字段的注释:-- name: 员工的姓名-- salary: 员工的薪资-- join_date: 员工的入职日期
);---插入
INSERT INTO employees VALUES (1, STRUCT('John Doe', 75000.50, '2020-01-01'));---查询
SELECT emp_info.name, emp_info.salary FROM employees;
3.映射(MAP)
映射类型用于存储键值对(key-value pairs)。键和值可以是不同的数据类型。这个类型特别适合存储类似字典或哈希表的数据。
语法
MAP<key_type, value_type>
示例
假设我们有一个表来存储员工的多个联系方式,其中每个联系方式都由一个键(如电话、电子邮件)和一个值(如电话号码、电子邮件地址)组成:
CREATE TABLE employee_contacts (emp_id INT COMMENT '员工的唯一标识符',contact_info MAP<STRING, STRING> COMMENT '员工的联系方式,包含多个键值对(例如,电话和电子邮件)'-- 映射字段的注释:-- 键:表示联系信息的类型,如'phone'或'email'-- 值:对应的联系信息,如电话号码或电子邮件地址
);
---插入数据
INSERT INTO employee_contacts VALUES (1, MAP('phone'='123-456-7890', 'email'='john.doe@example.com'));
---查询数据
SELECT emp_id, contact_info['phone'] FROM employee_contacts; -- 查询电话号码SELECT emp_id, contact_info['phone'] AS phone_number, contact_info['email'] AS email_address
FROM employee_contacts;
4. 联合类型(UNIONTYPE)
联合类型允许字段存储不同类型的数据。它可以存储多种类型的数据,但在同一时刻只能存储其中一种类型的数据。这对于处理复杂的嵌套数据结构非常有用。
语法
UNIONTYPE<type1, type2, ...>
示例
假设我们有一个表来存储某个用户的反馈信息,其中每条反馈可以是文本、整数或布尔值:
CREATE TABLE user_feedback (feedback_id INT COMMENT '反馈的唯一标识符',feedback UNIONTYPE<STRING, INT, BOOLEAN> COMMENT '用户的反馈内容,可以是文本、整数或布尔值'-- 联合类型字段的注释:-- 可以存储不同类型的反馈内容:-- STRING:文本类型反馈,如用户评论-- INT:整数类型反馈,如评分-- BOOLEAN:布尔类型反馈,如是否满意
);
---插入数据
INSERT INTO user_feedback VALUES (1, 'Great service!');
INSERT INTO user_feedback VALUES (2, 5); -- 整型反馈
INSERT INTO user_feedback VALUES (3, TRUE); -- 布尔反馈---查询数据
SELECT feedback_id, feedback FROM user_feedback;
5. 复杂数据类型的嵌套使用
Hive 还支持复杂数据类型的嵌套使用,你可以将 ARRAY、STRUCT 和 MAP 结合使用,以构建更加复杂的数据结构。
示例
创建一个表存储课程信息,其中包括课程名称、教师信息(结构体类型)以及学生名单(数组类型):
CREATE TABLE course_info (course_id INT,course_name STRING,teacher_info STRUCT<name:STRING, experience_years:INT>,students ARRAY<STRING>
);INSERT INTO course_info VALUES (101, 'Big Data Analytics',STRUCT('Dr. Smith', 10), ARRAY('Alice', 'Bob', 'Charlie')
);SELECT course_name, teacher_info.name, students FROM course_info;---查询
---通过 EXPLODE 函数将数组展开,每一行显示一个学生:
SELECT course_name, teacher_info.name AS teacher_name, student
FROM course_info
LATERAL VIEW EXPLODE(students) AS student;
---course_name:每一行显示课程名称(在本例中为 'Big Data Analytics')。
---teacher_info.name:每一行显示教师的姓名(在本例中为 'Dr. Smith')。
---student:每一行显示 students 数组中的一个学生。
综合案列
我们将创建一个名为 employee_data 的表,包含以下字段:
id:员工 ID(INT 类型,基本类型)
name:员工姓名(STRING 类型,基本类型)
salary:员工工资(DOUBLE 类型,基本类型)
skills:员工的技能(ARRAY 类型,复杂类型)
address:员工地址(STRUCT<street: STRING, city: STRING, zip: INT> 类型,复杂类型)
projects:员工参与的项目(MAP<STRING, STRING> 类型,复杂类型)
CREATE TABLE employee_data (id INT,name STRING,salary DOUBLE,skills ARRAY<STRING>,address STRUCT<street: STRING, city: STRING, zip: INT>,projects MAP<STRING, STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '|'
MAP KEYS TERMINATED BY ':'
STORED AS TEXTFILE;--ROW FORMAT DELIMITED:
--表示行的格式为分隔符格式。这意味着每一行的数据用特定的分隔符分隔。--FIELDS TERMINATED BY ',':
--定义了字段之间的分隔符为逗号 ,。这意味着在数据存储时,每个字段的值用逗号隔开。--COLLECTION ITEMS TERMINATED BY '|':
--定义了数组和映射中的项之间的分隔符为竖线 |。例如,skills 数组中的多个技能会用竖线隔开。--MAP KEYS TERMINATED BY ':':
--定义了映射中键(key)和值(value)之间的分隔符为冒号 :。这意味着在 projects 字段中,项目名称与项目描述之间用冒号隔开。--STORED AS TEXTFILE:
--定义了数据将以文本文件的格式存储。这意味着 Hive 会将表的数据存储为可读的文本文件,这对调试和查看数据非常有用。INSERT INTO TABLE employee_data VALUES(1, 'Alice', 75000.00, ARRAY('Java', 'Python'), NAMED_STRUCT('street', '123 Main St', 'city', 'New York', 'zip', 10001), MAP('Project1', 'Data Warehouse', 'Project2', 'Cloud Migration')),(2, 'Bob', 85000.00, ARRAY('Scala', 'Spark'), NAMED_STRUCT('street', '456 Market St', 'city', 'San Francisco', 'zip', 94105), MAP('Project1', 'Big Data Analytics', 'Project2', 'Machine Learning'));
- 查询 STRUCT 结构中的某个字段
假设我们要查询员工住在 New York 的所有员工。
SELECT * FROM employee_data
WHERE address.city = 'New York';
解释: 这里我们通过 address.city 来访问 STRUCT 结构中的 city 字段,查找地址中的城市是 New York 的员工。
- 查询 MAP<STRING, STRING> 结构中的某个键
假设我们想查询员工参与了名为 Project1 的项目,并且这个项目的描述是 Data Warehouse。
SELECT * FROM employee_data
WHERE projects['Project1'] = 'Data Warehouse';
解释: 这里我们通过 projects[‘Project1’] 来访问 MAP 中 Project1 键对应的值,并查找项目描述为 Data Warehouse 的员工。
- 查询数组 (ARRAY) 中包含某个值的员工
假设我们想查询掌握 Java 技能的所有员工。
SELECT * FROM employee_data
WHERE ARRAY_CONTAINS(skills, 'Java');
解释: ARRAY_CONTAINS 函数用于检查数组 skills 中是否包含 Java,如果包含则返回该员工的信息。
hive复杂数据类型运用场景总结
这些复杂数据类型在 Hive 中非常有用,特别是在处理大数据和半结构化数据时。它们可以帮助存储更复杂的、嵌套的数据结构,使得数据查询更加灵活和高效。
ARRAY:适用于存储同类数据集合。
STRUCT:适用于存储多个字段的组合。
MAP:适用于存储键值对数据。
UNIONTYPE:适用于存储多种类型中的任意一个。
相关文章:
hive的几种复杂数据类型
Hive的几种复杂数据类型 Hive 提供了几种复杂数据类型,能够支持更灵活和多样的数据存储。这些复杂数据类型对于处理嵌套数据或不规则数据特别有用。主要包括以下几种: 文章目录 Hive的几种复杂数据类型1. 数组(ARRAY)2. 结构体&a…...
使用 `WITH` 子句优化复杂 SQL 查询
使用 WITH 子句优化复杂 SQL 查询 在 SQL 中,处理复杂的查询需求时,代码往往会变得冗长且难以维护。为了解决这个问题,SQL 提供了 WITH 子句(也称为公用表表达式,Common Table Expression,CTE)…...
k8s网络插件及基础命令
一、k8s的cni网络插件 1.k8s的内部网络模式 pod内的容器与容器之间的通信。一个节点上的pod之间的通信,docker0网桥直接通信。不同节点上的pod之间的通信:通过物理网卡的ip地址和其他节点上的物理网卡的设备进行通信,然后把流量转发到指定的…...
组合总和II(力扣40)
这道题的难点就在于题目所给的集合中有重复的数字,我们需要进行去重操作。首先明确去重指的是去重哪一部分。注意并不是对递归的集合去重,而是对当前集合的遍历进行去重。这么说可能有点抽象,举个例子:假设集合为1,1,2,3,4&#x…...
【vue3 入门到实战】7. 标签中的 ref
目录 1. ref 的作用 2. 如何使用 1. ref 的作用 用于注册模板引用 用在普通DOM标签上,获取的是DOM节点。 用在组件标签上,获取的是组件的实例对象。 2. 如何使用 代码如下 <template><div class"app"><h2 ref"titl…...
MAC OS安装Homebrew
文章目录 1.下载Homebrew2.完成安装3.验证安装4.更新 Homebrew作为一个包管理器,提供了一种简便的方式来安装、更新和卸载各种命令行工具和应用程序。相比于手动下载和编译源代码,或者从不同的网站下载安装包,使用Homebrew可以显著减少这些操…...
数据结构之栈和队列(超详解)
文章目录 概念与结构栈队列 代码实现栈栈是否为空,取栈顶数据、栈的有效个数 队列入队列出队列队列判空,取队头、队尾数据,队列的有效个数 算法题解有效的括号用队列实现栈用栈实现队列复用 设计循环队列数组结构实现循环队列构造、销毁循环队…...
[Deepseek-自定义Ollama 安装路径+lmStudio 简易安装]
ollama 先下载 https://ollama.org.cn/download 使用 发现报错 检查路径 自己的路径! 再用 .\OllamaSetup.exe /DIRE:\MySoftware\Ollama 删除掉 多余模型 ollama delete <model_name> 例如 ollama delete deepseek-r1:1.5b 下载 ollama run deepseek-r1:1.5b…...
uniapp mqttjs 小程序开发
在UniApp中集成MQTT.js开发微信小程序时,需注意平台差异、协议兼容性及消息处理等问题。以下是关键步骤与注意事项的综合指南: 一、环境配置与依赖安装 安装MQTT.js 推荐使用兼容性较好的版本:mqtt4.1.0(H5和小程序兼容性最佳&…...
LabVIEW位移测量系统
本文介绍了一种基于LabVIEW的位移测量系统,结合先进的硬件设备与LabVIEW平台的强大功能,能够实现对位移的精确测量和高效数据处理。该系统具备高精度、实时性和良好的可扩展性,适用于工程与科学实验中对位移测量的多种需求。 项目背景 位移…...
VMware下Linux和macOS遇到的一些问题总结
1.解决.NET程序通过网盘传到Linux和macOS不能运行的问题 这是文件权限的问题。当你通过U盘将文件传输到虚拟机的macOS和Linux系统时,文件的权限和所有权可能得到了保留或正确设置。但如果你通过网盘上传,文件的权限或所有权可能没有正确设置,…...
Mac: docker安装以后报错Command not found: docker
文章目录 前言解决办法(新的)解决步骤(原来的)不推荐总结 前言 本操作参考 http://blog.csdn.net/enhenglhm/article/details/137955756 原作者,更详细请,查看详细内容请关注原作者。 一般,…...
深度学习里面的而优化函数 Adam,SGD,动量法,AdaGrad 等 | PyTorch 深度学习实战
前一篇文章,使用线性回归模型逼近目标模型 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课:引领人工智能新时代【梗直哥瞿炜】 深度学习里面的而优化函数 …...
C++自研3D教程OPENGL版本---动态批处理的基本实现
又开始找工作了,借机休息出去旅行两个月,顺便利用这段时间整理下以前写的东西。 以下是一个简单的动态批处理实现: #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream> #include <vector>// 顶点结…...
如何使用deepseek开发一个翻译API
什么是deepseek Deepseek 是一个基于人工智能技术的自然语言处理平台,提供了多种语言处理能力,包括文本翻译、语义分析、情感分析等。它通过深度学习模型和大规模语料库训练,能够实现高质量的文本翻译和多语言理解。Deepseek 的核心优势在于…...
Java使用aspose实现pdf转word
Java使用aspose实现pdf转word 一、下载aspose-pdf-21.6.jar包【下载地址】,存放目录结构如图;配置pom.xml。 <!--pdf to word--> <dependency><groupId>com.aspose</groupId><artifactId>aspose-pdf</artifactId>…...
fs 文件系统模块
在 Node.js 中,fs(File System)模块提供了与文件系统进行交互的能力。无论是读取、写入还是操作文件和目录,fs 模块都提供了丰富的 API 支持。本文将详细介绍 fs 模块的基本用法、异步与同步方法的区别以及一些高级功能࿰…...
正激变换器拓扑
正激变换器拓扑是一种常见的DC-DC电源拓扑结构,以下是关于它的详细介绍: 基本组成 - 主开关:通常为MOSFET,用于控制输入电压的通断。 - 变压器:实现电压隔离和电压变换,传递能量。 - 续流二极管&#x…...
Rsyslog omhttp(HTTP输出模块)
个人博客地址:Rsyslog omhttp(HTTP输出模块) | 一张假钞的真实世界 使用Rsyslog的omhttp模块可以将收集的日志数据以HTTP请求的方式输出。该模块支持单条/批量发送数据,支持GZIP压缩,支持HTTPS。 Rsyslog默认未包含o…...
防火墙与Squid代理服务器
服务器的安装、搭建与配置准备前期 虚拟机版本:redhat Enterprise Linux Server release 7.2(Maipo)系统架构:x86虚拟机服务器地址:192.168.195.3Window地址:192.168.195.237进行ISO挂载操作进入root模式[yonghu@localhost 桌面]#su 返回上级目录文件进入media文件中,创建…...
为何实现大语言模型的高效推理以及充分释放 AI 芯片的计算能力对于企业级落地应用来说,被认为具备显著的研究价值与重要意义?
🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ AI 芯片:为人工智能而生的 “大脑” AI 芯片,又称人工智能加速器或计算卡,是专为加速人工智能应用,特别是深度学习任务设计的专用集成电路(A…...
【教程】docker升级镜像
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 自动升级 手动升级 无论哪种方式,最重要的是一定要通过-v参数做数据的持久化! 自动升级 使用watchtower,可…...
k8s常见面试题2
k8s常见面试题2 安全与权限RBAC配置如何保护 Kubernetes 集群的 API Server?如何管理集群中的敏感信息(如密码、密钥)?如何限制容器的权限(如使用 SecurityContext)?如何防止容器逃逸࿰…...
mysql运维
1、msyqlLinux通用二进制安装 1. MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql…...
将Deepseek接入pycharm 进行AI编程
目录 专栏导读1、进入Deepseek开放平台创建 API key 2、调用 API代码 3、成功4、补充说明多轮对话 总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——…...
Redis03 - 高可用
Redis高可用 文章目录 Redis高可用一:主从复制 & 读写分离1:主从复制的作用2:主从复制原理2.1:全量复制2.2:增量复制(环形缓冲区) 3:主从复制实际演示3.1:基本流程准…...
日常知识点之面试后反思遗留问题汇总
梳理一下最近接触到的几个知识点: 1:突然问到端口复用 (SO_REUSEADDR) 端口复用一般用在服务端重启时,套接字处于time_wait状态时,无法绑定该端口,导致无法启动问题。 设置端口复用ÿ…...
软考教材重点内容 信息安全工程师 第15章 网络安全主动防御技术与应用
目录 15.1.1 人侵阻断技术原理 15.1.2 人侵阻断技术应用 15.3 网络流量清洗技术与应用 15.3.1 网络流量清洗技术原理 15.3.2 网络流量清洗技术应用 15.4 可信计算技术与应用 15.4.1 可信计算技术原理 15.5 数字水印技术与应用 15.5.1 数字水印技术原理 15.5.2 数字水…...
大模型的底层逻辑及Transformer架构
一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中…...
PostgreSQL-字符串函数
字符串连接 SELECT A||B; 字符串连接,适用于字符串与数字连接 SELECT CONCAT(10,a,hello,20.0); 连接所有参数,个数不限,类型不限 字母转换 SELECT LOWER(ABCD); 将字符转换成小写 SELECT UPPER(ABCD); 将字符转换成大写 SELECT IN…...
Qt修仙之路2-1 炼丹初成
widget.cpp #include "widget.h" #include<QDebug> //实现槽函数 void Widget::login1() {QString userusername_input->text();QString passpassword_input->text();//如果不勾选无法登入if(!check->isChecked()){qDebug()<<"xxx"&…...
华为的IPD模式VS敏捷项目管理模式
本文介绍了华为的IPD模式与敏捷项目管理模式的对比。文章详细阐述了两种模式的特点、适用范围及实施要点,为读者提供了全面的理解。 重点内容: 1. IPD模式强调跨部门协同,注重产品全生命周期管理,适用于复杂产品领域。 2. 敏捷…...
Ollama python交互:chat+embedding实践
Ollama简介 Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等…...
Redis进阶
Redis持久化: 前面我们讲到mysql事务有四个比较核心的特性: 原子性:保证多个操作打包成一个。一致性:A给B100,A少一百,B必须多一百。持久性:针对事务操作必须要持久生效,不管是重启…...
【蓝桥杯嵌入式】6_定时器输入捕获
全部代码网盘自取 链接:https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码:3ii2 这是两个信号发生器,可以通过调节板上的两个电位器R39和R40调节输出频率。 将PB4、PA15选择ch1,两个信号发生器只能选择TIM3和TIM…...
C#常用集合优缺点对比
先上结论: 在C#中,链表、一维数组、字典、List<T>和ArrayList是常见的数据集合类型,它们各有优缺点,适用于不同的场景。以下是它们的比较: 1. 一维数组 (T[]) 优点: 性能高:数组在内存中…...
Python调取本地MongoDB招投标数据库,并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型
根据你的需求,以下是使用Python调取本地MongoDB招投标数据库,并结合Ollama部署的DeepSeek-R1-8B模型来制作招投标垂直领域模型的步骤: 安装PyMongo 首先,确保你已经安装了PyMongo库,用于Python与MongoDB的交互。如果未…...
【MySQL】深入了解索引背后的内部结构
目录 索引的认识: 作用: 索引的使用: 索引底层的数据结构: 哈希表 AVL树 红黑树 B树: B树: B树搜索: 索引的认识: 索引是数据库中的一个数据结构,用于加速查询…...
pytest-xdist 进行多进程并发测试
在自动化测试中,运行时间过长往往是令人头疼的问题。你是否遇到过执行 Pytest 测试用例时,整个测试流程缓慢得让人抓狂?别担心,pytest-xdist 正是解决这一问题的利器!它支持多进程并发执行,能够显著加快测试…...
蓝桥杯准备 【入门3】循环结构
素数小算法(埃氏筛&&欧拉筛) 以下四段代码都是求20以内的所有素数 1.0版求素数 #include<iostream> using namespace std;int main() {int n 20;for(int i2;i<n;i){int j0;for(j2;j<i;j)//遍历i{if(i%j0){break;}}if(ij){cout&l…...
PHP填表统计预约打卡表单系统小程序
📋 填表统计预约打卡表单系统——专属定制,信息互动新纪元 📊 填表统计预约打卡表单系统,一款专为现代快节奏生活量身打造的多元化自定义表单统计小程序,集信息填表、预约报名、签到打卡、活动通知、报名投票、班级统…...
自定义数据集,使用scikit-learn 中K均值包 进行聚类
1. 引言 K均值聚类是一种无监督学习方法,用于将数据集分为多个簇。通过计算数据点之间的距离并将它们分配到最近的簇中心,K均值算法可以帮助我们发现数据中的自然结构。 2. 数据集创建 首先,我们使用numpy创建一个自定义的二维数据集&…...
Lua中文语言编程源码-第十一节,其它小改动汉化过程
__tostring 汉化过程 liolib.c metameth[] {"__转换为字符串", f_tostring}, lauxlib.c luaL_callmeta(L, idx, "__转换为字符串") lua.c luaL_callmeta(L, 1, "__转换为字符串") __len 汉化过程 ltm.c luaT_eventname[] ltablib.c c…...
Android studio 创建aar包给Unity使用
1、aar 是什么? 和 Jar有什么区别 aar 和 jar包 都是压缩包,可以使用压缩软件打开 jar包 用于封装 Java 类及其相关资源 aar 文件是专门为 Android 平台设计的 ,可以包含Android的专有内容,比如AndroidManifest.xml 文件 &#…...
4. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--什么是微服务--微服务设计原则与最佳实践
相比传统的单体应用,微服务架构通过将大型系统拆分成多个独立的小服务,不仅提升了系统的灵活性和扩展性,也带来了许多设计和运维上的挑战。如何在设计和实现微服务的过程中遵循一系列原则和最佳实践,从而构建一个稳定、高效、易维…...
大语言模型遇上自动驾驶:AsyncDriver如何巧妙解决推理瓶颈?
导读 这篇论文提出了AsyncDriver框架,致力于解决大语言模型在自动驾驶领域应用中的关键挑战。论文的主要创新点在于提出了大语言模型和实时规划器的异步推理机制,实现了在保持性能的同时显著降低计算开销。通过设计场景关联指令特征提取模块和自适应注入…...
第17章 读写锁分离设计模式(Java高并发编程详解:多线程与系统设计)
1.场景描述 对资源的访问一般包括两种类型的动作——读和写(更新、删除、增加等资源会发生变化的动作),如果多个线程在某个时刻都在进行资源的读操作,虽然有资源的竞争,但是这种竞争不足以引起数据不一致的情况发生,那么这个时候…...
硬盘修复后,文件隐身之谜
在数字时代,硬盘作为数据存储的重要载体,承载着无数珍贵的信息与回忆。然而,当硬盘遭遇故障并经过修复后,有时我们会遇到这样一个棘手问题:硬盘修复后,文件却神秘地“隐身”,无法正常显示。这一…...
Ollama+ page Assist或Ollama+AnythingLLM 搭建本地知识库
参考:【AI】10分钟学会如何用RAG投喂数据给你的deepseek本地模型?_哔哩哔哩_bilibili 方法一:Ollama page Assist 本地知识库 ***下方操作比较精简,详情参考:Ollama 部署本地大语言模型-CSDN博客 1.下载Ollama 2.O…...
树莓派5添加摄像头 在C++下调用opencv
由于树莓派5 os系统升级,正常libcamera创建对象每次失败。 改如下方法成功。 1 创建管道 rpicam-vid -t 0 --codec mjpeg -o udp://127.0.0.1:8554 > /dev/null 2>&1 2 opencv从管道里读取 #include <opencv2/opencv.hpp> #include <iostream>int mai…...