通过人类和机器人演示进行联合逆向和正向动力学的机器人训练
25年3月来自哥伦比亚大学的论文“Train Robots in a JIF: Joint Inverse and Forward Dynamics with Human and Robot Demonstrations”。
在大型机器人演示数据集上进行预训练是学习各种操作技能的强大技术,但通常受到收集以机器人为中心数据的高成本和复杂性限制,特别是对于需要触觉反馈的任务。这项工作引入一种使用多模态人类演示进行预训练的新方法来应对这些挑战。该方法联合学习逆动力学和正向动力学来提取潜状态表征,学习特定操作的表征。这使得仅使用少量机器人演示即可进行有效的微调,从而显着提高数据效率。此外,该方法允许使用多模态数据,例如将视觉和触觉结合起来进行操作。通过利用潜动力学建模和触觉感知,这种方法为基于人类演示的可扩展机器人操作学习铺平了道路。
使用模仿学习(IL) [3–5] 或离线强化学习(RL) [6, 7] 对大型机器人演示数据集 [1, 2] 进行预训练,正迅速成为学习各种机器人操作技能的标准技术,甚至推动了基础模型 [8–14] 的开发。然而,这些方法依赖于大量的机器人演示样本,这些样本通常通过遥操作收集,即演示者遥操作正在执行任务的机器人硬件。这一过程的扩展成本很高;如果需要复杂的硬件,例如灵巧操作等需要遥操作员实时触觉反馈的任务,这种方法也不切实际。
相比之下,演示者直接执行相关任务真人演示的获取成本要低得多。此外,柔性触觉传感器正在不断取得进展 [15],在人体指尖安装此类传感器可以保留演示者的触觉,同时在整个演示过程中记录触觉反馈以及常用的视觉观察。这表明,利用此类多模态人体演示进行预训练,有望突破以机器人为中心的数据收集的局限性。
先前的视觉表征学习研究[16–23],例如掩码视觉预训练 (MVP) [20, 24–26],探索利用视频等视觉人体演示进行状态表征学习。然而,这些方法本质上与动力学无关,通常依赖于基于重建的目标函数,而这些目标函数无法捕捉对操作任务至关重要的底层系统动力学。此外,由于依赖于重建高维感官输入,这些方法计算成本高昂,且难以扩展。相比之下,动力学驱动的表征学习通过编码任务相关信息,提供了一种更有前景的替代方案。
动力学驱动的表征学习,涉及学习前向动力学模型,在应用于多模态人体演示时面临挑战。获取动作标签(例如手部关节运动)需要昂贵的传感系统,而现有方法通常依赖于重建高维观测值,这导致计算成本高昂。LAPO [27] 等方法通过联合学习逆向和正向动力学来捕捉特定操作的信息(无需动作标签),从而缓解这些问题。在此基础上,DynaMo [28] 通过老师-学生蒸馏提高效率,同时保留动力学驱动学习的优势。然而,这些方法仅关注机器人演示。
本文将这类方法扩展到使用多模态人类演示进行预训练,从而实现无需动作标签或昂贵重建的表征学习。通过调整联合逆向-正向动力学范式并结合师-生蒸馏,其方法显著提高计算效率。这使得表征学习在现实世界的机器人应用中具有可扩展性和实用性。
其模仿学习框架,利用多模态人类演示进行预训练,提高在有限的机器人演示样本量下策略学习的效率和效果。本文方法旨在通过一个两阶段过程来解决学习复杂操作技能所面临的挑战:(1)预训练,训练多模态编码器从提供多模态感知数据但不提供动作标签的人类演示中学习潜状态表征;(2)微调,使用较小的机器人演示样本集训练基于扩散的策略。
在预训练过程中,通过联合学习潜空间中的正向和逆向动力学模型来提取结构化的潜状态空间。这样能够从多模态人类演示中捕获与任务相关的特征,而无需显式的动作标签,从而使该过程更具可扩展性和数据效率。为了提升学习表征的质量和鲁棒性,采用知识自蒸馏和师生模式,并利用 DynaMo 损失函数来确保潜表征的有效性。
在微调阶段,训练一个扩散策略,该策略以学习的潜状态表征历史记录为条件,并结合目标或任务标签等条件变量来生成动作。通过利用预训练的编码器,该方法实现高效的模仿学习,减少实现高任务成功率所需的机器人演示次数。
其框架通过 ViTacT 多模态编码器有效地结合视觉和触觉模态,该编码器处理多个摄像头视图和触觉数据,从而生成丰富的潜表征。本研究使用卷积架构,因为它们在小规模数据集上效率更高,但预计基于 Transformer 的方法将提升未来在更大数据集上应用的可扩展性。
如图所示:引入一个使用多模态人类演示进行预训练的框架。通过联合学习逆向和前向动力学(JIF)来提取潜状态表征。动力学驱动的状态表征最大化人类演示中以操作为中心的信息,从而可以通过少量机器人演示进行微调,实现高效且可泛化的模仿学习。
问题定义
设 D_h 为仅包含观测数据的多模态人类演示数据集,包含观测值 (oh_0, …, oh_N);D_r 为通过遥操作获取的带有动作标记的演示数据集 (or_0, ar_0, …, ar_N −1, o^h_N)。注意,人类演示不包含动作。鉴于获取人类演示的容易程度和机器人演示的难度,假设 D_h >> D_r。
目标是利用 D_h 中人类演示的预训练数据,高效地学习针对 D_r 中展示的技能策略。将策略定义为 π(a_t,…,a_t+K | o_t,…,o_t−H, u),其中 o_t,…,o_t−H 表示观察历史,u 是条件变量,例如目标、任务标签或语言指令嵌入。为简单起见,在整个讨论中省略具身上标 h 和 r。
在预训练阶段,试图通过学习潜空间中的动态来预训练多模态编码器 φ。具体而言,构建一个潜在的逆动态模型 h(z_t |x_t , x_t+F) 和一个正向动态模型 f (x_t |x_t , z_t),其中 x_t 是观察 o_t 的潜状态,z_t 是观察对 x_t 和 x_t+F 之间的潜动作。在模仿学习阶段的后期,寻求学习一种扩散策略 ψ(a_t, …, a_t+K|x_t,…, x_t−H, u),该策略根据观察历史生成动作。
使用多模态人体演示进行预训练
在预训练阶段,目标是在潜空间中建模动态,以避免计算成本高昂的重建。令 x_t 和 x_t+F 分别表示通过多模态编码器 φ 获得的观测值 o_t 和 o_t+F 的潜表征。
具体来说,学习一个正向动态模型 f(xˆ_t + F | x_t, z_t),同时训练一个逆向动态模型 h(z_t |x_t, x_t+F)。训练目标是最小化潜空间中的预测误差。
逆动力学模型引入的低维潜动作 z_t 充当信息瓶颈,这对于高效的表征学习至关重要 [27]。然而,单纯地最小化潜状态预测损失,可能会导致潜在崩溃。
为了解决这个问题,采用知识自蒸馏技术,学习两个相同的编码器:一个教师网络 φ_teacher 和一个学生网络 φ_student。这种方法已被证明能够提升表征质量,同时降低内存需求和训练时间,尤其是在高维观测数据的情况下。潜状态 x_t+F 是使用教师网络计算的。
预测的潜状态 xˆ_t+F 的计算方法如下:
- 计算学生嵌入:φ_student(o_t)。
- 预测正向动态 f(xˆ_t + F | x_t, z_t):其中 z_t 从逆向动态模型 h(z_t |x_t, x_t+F) 中采样。
为了确保稳定性和学习效率,最小化潜状态预测损失,其中加入一个正则化项。
最后,将教师编码器 φ_teacher 更新为学生编码器 φ_student 的指数移动平均 (EMA)。这使得知识自蒸馏能够用于学习状态表征。
虽然可以使用各种相似性损失,但使用 Dynamo 损失,因为它已成功用于动态驱动的表征学习。
Dynamo 损失包含两个部分:余弦相似度和协方差正则化项。第一个损失在两个向量彼此偏离时进行惩罚。第二个损失部分是协方差正则化损失,它最小化协方差矩阵的非对角元素,从而促进特征去相关并减少学习特征之间的冗余。因此,总 DynaMo 损失是两个部分的加权和。
在本方法中,φ 是一个 ViTacT 多模态编码器,它处理多个摄像机视图和触觉模态以生成潜表征。每个摄像机视图使用基于 ResNet 的嵌入编码成一个 token,而触觉信号则通过一维卷积处理生成触觉嵌入。这些嵌入随后被用作 Transformer 解码器的输入,从而实现多模态信息的融合,用于下游策略学习。然而,在具有更广泛训练数据的大规模应用中,预计基于块的编码(例如在 Vision Transformer (ViT) 中实现的)将提供更优异的性能,因为 Transformer 架构相比卷积网络具有更佳的扩展特性。在本方法中,利用基于 CNN 的特征提取,因为其工作重点是相对较小的数据规模,而卷积架构在这种规模下仍然有效且计算高效。
基于机器人演示的模仿学习
在第二个模仿学习阶段,训练一个以预训练多模态编码器 φ 提取的潜状态表征为条件的扩散策略,从而促进从有限数量的演示中进行高效学习。具体来说,扩散策略 ψ(a_t,…,a_t+K | x_t,…,x_t−H,u) 基于潜状态的历史记录和条件变量 u(例如目标、任务标签或语言指令)生成动作。在实验中使用历史记录 H = 16 和动作块长度 K = 16。
通过利用预训练编码器 φ,其方法有效地利用人类演示数据来提供信息丰富的潜在表征,从而提高模仿学习的效率。结果显示,这可以在更少的机器人演示次数下实现更快的收敛速度和更好的泛化效果。
考虑使用配备触觉传感的夹持器抓取桌面上任意方向物体的任务。为此,收集人类和机器人的演示数据,如图所示。人类数据集包含五个物体,每个物体有 1,000 个人类演示。
由于机器人演示需要遥操作,这更具挑战性且耗时,因此仅针对单个物体收集 100 个演示。用于使用人类演示进行预训练、微调和泛化的目标均如图所示。
相关文章:
通过人类和机器人演示进行联合逆向和正向动力学的机器人训练
25年3月来自哥伦比亚大学的论文“Train Robots in a JIF: Joint Inverse and Forward Dynamics with Human and Robot Demonstrations”。 在大型机器人演示数据集上进行预训练是学习各种操作技能的强大技术,但通常受到收集以机器人为中心数据的高成本和复杂性限制…...
云渗透三(对象存储攻防)
对象存储是什么? 对象存储(Cloud Object Storage,COS)是腾讯云提供的⼀种存储海量⽂件的分布式存储服务,⽤户可通过⽹络随时存储和查看数据。腾讯云 COS 使所有⽤户都能使⽤具备⾼扩展性、低成本、可靠和安全的数据存储服务。 COS 通过控制台、API、SDK 和⼯具等多样化⽅…...
ShenNiusModularity项目源码学习(17:ShenNius.Admin.Mvc项目分析-2)
ShenNiusModularity项目的后台管理主页面如下图所示,该页面为ShenNius.Admin.Mvc项目的Views\Home\Index.cshtml,使用的是layuimini后台模板(参考文献2),在layuimini的GitHub主页中提供有不同样式的页面模版链接&#…...
Sentinel源码—2.Context和处理链的初始化一
大纲 1.Sentinel底层的核心概念 2.Sentinel中Context的设计思想与源码实现 3.Java SPI机制的引入 4.Java SPI机制在Sentinel处理链中的应用 5.Sentinel默认处理链ProcessorSlot的构建 1.Sentinel底层的核心概念 (1)资源和规则 (2)Context (3)ProcessorSlot (4)Node (1…...
嵌入式C语言高级编程:OOP封装、TDD测试与防御性编程实践
一、面向对象编程(OOP) 尽管 C 语言并非面向对象编程语言,但借助一些编程技巧,也能实现面向对象编程(OOP)的核心特性,如封装、继承和多态。 1.1 封装 封装是把数据和操作数据的函数捆绑在一起,对外部隐藏…...
C++中unique_lock和lock_guard区别
目录 1.自动锁定与解锁机制 2.灵活性 3.所有权转移 4.可与条件变量配合使用 5.性能开销 在 C 中,std::unique_lock 和 std::lock_guard 都属于标准库 <mutex> 中的互斥锁管理工具,用于简化互斥锁的使用并确保线程安全。但它们存在一些显著区别…...
C# 使用.NET内置的 IObservable<T> 和 IObserver<T>-观察者模式
核心概念 IObservable<T> 表示 可观察的数据源(如事件流、实时数据)。 关键方法:Subscribe(IObserver<T> observer),用于注册观察者。 IObserver<T> 表示 数据的接收者,响应数据变化。 三个核心…...
多模态大模型文字识别 vs OCR识别模型
论文简述 多模态大语言模型(Multimodal Large Language Models,简称多模态LLMs)具有高度通用性,能够处理图像描述、文档分析和自动化内容生成等多种任务。这种广泛的适用性使其在不同工业领域都受到了大量关注。 在OCR方面,多模态LLMs的表现超过了专门为OCR设计的模型。这…...
[区块链] 持久化运行区块链 | 并通过HTTP访问
实验目标 以Web服务的形式持久化运行区块链,并通过HTTP接口的形式实现对区块链的操作。 实验内容 构建区块链的区块对象和区块链对象。使用Flask等Web服务框架运行持久化的进程,实现基于HTTP接口实现新区块的添加功能以及传递区块索引查询区块链中的区…...
批量将不同位置的多个文件复制到一个文件夹
在日常工作中,我们常常需要将多个位置的文件集中到一个文件夹中。手动一个个复制文件既费时又容易出错。使用批量文件复制工具,您可以轻松将不同位置的多个文件快速复制到一个文件夹中,大大提高工作效率。 今天给大家介绍一下批量将不同位置的…...
CentOS 下 Zookeeper 常用命令与完整命令列表
一、服务管理命令 常用服务命令 启动 Zookeeper 服务: systemctl start zookeeper # 使用 systemd (推荐) /usr/local/zookeeper/bin/zkServer.sh start # 直接启动 停止服务: systemctl stop zookeeper /usr/local/zookeeper/bin/zkServer.sh stop 查看服务状态…...
React与Vue:哪个框架更适合入门?
React与Vue:选择哪个框架入门? 一、框架定位与发展趋势 1.1 技术背景对比 React:Meta(原Facebook)2013年推出,采用声明式编程范式,专注构建用户界面Vue:尤雨溪2014年推出…...
突发!GitHub 被曝封禁中国区 IP
昨天,大量国内开发者发现,未登录状态下访问GitHub官网时,页面显示“Access to this site has been restricted.”,中国大陆及香港IP均被限制。尽管GitHub官方尚未发布声明,但多方实测显示: 猪哥亲测在已登…...
向量数据库Qdrant 安装 不使用docker
一、导读 环境:Ubuntu 24.04、Windows 10、WSL 2、Qdrant 1.13.4 背景:换了新工作,使用qdrant作为向量库,需要不使用docker安装 时间:20250415 说明:初入职,不了解,暂且记下 二、…...
基于坐标的神经表示实现零样本学习以用于快速三维多参数定量磁共振成像|文献速递-深度学习医疗AI最新文献
Title 题目 Coordinate-based neural representation enabling zero-shot learning for fast 3D multiparametric quantitative MRI 基于坐标的神经表示实现零样本学习以用于快速三维多参数定量磁共振成像 01 文献速递介绍 定量磁共振成像(qMRI)能…...
每日算法-250415
每日算法 - 2024-04-15: 今天我们来解决两道 LeetCode 上关于在旋转排序数组中寻找最小值的问题。 153. 寻找旋转排序数组中的最小值 题目描述 思路 核心思想是利用 二分查找。 解题过程 一个升序排序的数组(无重复元素)在经过若干次旋转后…...
第16届蓝桥杯省赛JavaB组真题回顾
第16届蓝桥杯省赛已经结束了,第一次参加也是坐牢了4个小时,现在还是来总结一下吧(先声明以下的解法,大家可以当作一种思路来看,解法不一定是正解,只是给大家提供一种能够正常想到的思路吧) 试题…...
[Godot] C#人物移动抖动解决方案
在写一个2D平台跳跃的游戏代码发现,移动的时候会抖动卡顿的厉害,后来研究了一下抖动问题,有了几种解决方案 1.垂直同步和物理插值问题 这是最常见的可能导致画面撕裂和抖动的原因,大家可以根据自己的需要调整项目设置࿰…...
hackmyvm-quick2
收集信息 arp-scan -l nmap 192.168.66.74 dirsearch -u http://192.168.66.74 -e * 访问file.php 尝试查看/etc/passwd 抓包 payload: /file.php?file=/home/andrew/.bashrc /file.php?file=/home/nick/.bashrc...
TDengine 与其他时序数据库对比:InfluxDB/TimescaleDB 选型指南(一)
引言 在当今数字化时代,物联网(IoT)、工业互联网等领域蓬勃发展,产生了海量的时序数据。这些数据记录了设备状态、传感器读数、业务指标等随时间变化的信息,对于企业的运营监控、数据分析和决策制定起着关键作用。为了…...
Jetson agx Orin 适配Xenomai4
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、Xenomai 4 二、使用步骤 1.获取源码 2.编译源码 3、安装 4、运行效果 5、libevl 总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了…...
Terraform - 理解 Count 和 For_Each 循环
概述 使用 Terraform 时,您可能需要为同一资源创建多个实例。这时 count 和 for_each 循环就派上用场了。这些循环允许您创建具有相同配置但具有不同值的多个资源。本指南将讲解如何在 Terraform 中使用 count 和 for_each 循环。 Terraform 中的 Count Terraform …...
Git本地更新和远端同步操作
1、将远端文件夹拉取到本地 从0—1:克隆 在文件夹空白处点击:Git克隆 输入url,克隆到本地 输入远端文件地址,点击确定,远端文件即可克隆到本地 2、拉取远端更新到本地 文件克隆到本地后,每次更新需…...
激活函数Softmax在不同维度上的应用 | dim参数理解
理解 Softmax 在不同维度上的应用,关键在于明确 Softmax 的作用以及 dim 参数的意义。Softmax 的目标是将输入张量的某些元素转换为概率分布,使得这些元素的和为1。dim 参数决定了沿着哪个维度进行归一化操作。 1. Softmax 的基本原理 Softmax 函数的公…...
地理人工智能中位置编码的综述:方法与应用
以下是对论文 《A Review of Location Encoding for GeoAI: Methods and Applications》 的大纲和摘要整理: A Review of Location Encoding for GeoAI: Methods and Applications 摘要(Summary) 本文系统综述了地理人工智能(G…...
6.DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息及问题解决
DJI-PSDK:psdk订阅无人机高度/速度/GPS/RTK/时间/经纬度等消息 消息订阅可以获取绝大多数无人机的动态信息,包括无人机的姿态、速度、加速度、角速度、高度、GPS 位置、云 台的角度和状态、飞行模式和飞行状态、电机和电池等各类关键信息。 这些信息并不会“一股脑儿地”全部…...
ArrayList的subList的数据仍是集合
ArrayList的subList结果不可强转成ArrayList,否则会抛出 ClassCastException异常 • 级别: 【CRITICAL】 • 规约类型:BUG • 最坏影响: 程序错误,抛出异常 说明:subList 返回的是ArrayList的内部类SubL…...
VS Code怎么换颜色
在 VS Code 中,你可以通过修改主题或自定义编辑器颜色来将界面改为白色。以下是几种方法: 方法 1:切换浅色主题(推荐) VS Code 自带多个浅色主题,可以直接切换: 按快捷键 Ctrl K,…...
jupyter中切换Anaconda虚拟环境
jupyter中切换虚拟环境 查看python路径 import sys sys.executable这个命令会输出当前 Notebook 使用的 Python 可执行文件的路径 2. 查看安装的包和环境信息(前两步都在jupyter notebook中进行) !which python !python --version !pip list将你的虚拟…...
红帽认证 Linux安全 级别
红帽认证体系将安全能力划分为专项技能认证与架构师路径,覆盖从基础加固到企业级安全架构设计。以下是安全相关认证的级别、核心内容及职业定位: 一、红帽安全认证分级与定位 认证名称级别考试代码核心方向考试难度适用人群Red Hat Certif…...
从服务器多线程批量下载文件到本地
1、客户端安装 aria2 下载地址:aria2 解压文件,然后将文件目录添加到系统环境变量Path中,然后打开cmd,输入:aria2c 文件地址,就可以下载文件了 2、服务端配置nginx文件服务器 server {listen 8080…...
WPF 中的元素继承层次结构 ,以下是对图中内容的详细说明:
顶层基类 DispatcherObject:处于继承体系最顶端,是一个抽象类。它为 WPF 元素提供了与 Dispatcher(调度器)交互的能力,Dispatcher 负责管理线程间的消息传递,确保 UI 操作在正确的线程(通常是 …...
ROS IkFast运动学插件
ikFast运动学插件生成 环境安装ROS依赖安装openrave依赖下载依赖代码工具使用urdf转dae设置精度查看模型关节生成代码生成插件 环境 ubuntu 20.04ROS版本:noetic 安装ROS依赖 sudo apt-get install -y ros-noetic-desktop ros-noetic-collada-urdf ros-noetic-mov…...
Flink Hive Catalog最佳实践
Flink Hive Catalog 最佳实践 一、配置与初始化 依赖管理 Hive Connector 版本对齐:需确保 flink-sql-connector-hive 版本与 Hive 版本严格匹配(如 Hive 3.1.3 对应 flink-sql-connector-hive-3.1.3_2.12),同时添加 Hadoop 遮蔽…...
接口测试之postman使用指南
一、为何使用postman postman是一款简单高效的接口测试工具,能够很方便发送接口请求,易于保存接口请求脚本,postman提供接口响应数据比对功能,可以设置预期结果作断言,还能把测试用例放在一个集合中批量执行ÿ…...
小豆包api:支持GPT-4.1全新系列模型api,纯官逆向可用!
今天凌晨,OpenAI正式发布GPT-4.1系列模型,带来标准版GPT-4.1,更轻量快速GPT-4.1 mini和极致性价比的GPT-4.1 nano三款模型,全面超越GPT-4o,更聪明、更便宜。 小豆包api已全面支持GPT-4.1全新系列模型! 与前…...
GPTNet如何革新创意与效率
引言 人工智能正在以前所未有的速度改变我们的工作与生活方式,从智能写作到视觉创作,AI工具已成为不可或缺的伙伴。在众多平台中,GPTNet以其强大的功能整合和直观体验崭露头角。它不仅汇集了GPT系列、Claude、Grok、Gemini等顶级对话模型&am…...
3.3.6 VO-O语法- 流程算子
流程算子是VO语言最重要的一类语法算子。它们是VO语言特有的语法概念。这些算子属于容器算子,用于组织管理各类流程。这样的设计有利于流程的复用。可以将流程视为一个大级别的函数模块,在更大的业务逻辑中复用,从而降低业务开发的复杂度&…...
c++引入nacos,详细步骤
以下是将Nacos引入C项目的详细步骤,包括安装、配置和代码实现: 1. 安装Nacos服务器 下载Nacos服务器安装包,可以从Nacos官网获取最新版本。 解压安装包并启动Nacos服务器: cd nacos/bin sh startup.sh -m standalone 这将启动…...
OpenAI 最新发布的 GPT-4.1 系列在 API 中正式上线
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
亚远景-自动驾驶时代,ASPICE评估标准将如何演进?
自动驾驶时代,ASPICE评估标准将从以下几个方面演进: 1. 技术领域的扩展 增加硬件工程和机器学习过程组 :ASPICE 4.0版本新增了硬件工程和机器学习过程组,以应对自动驾驶系统中硬件与软件深度融合的需求。自动驾驶功能的实现不仅依…...
Redis 数据类型全解析:从基础到实战应用
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 Redis 作为高性能的键值对存储系统,其丰富的数据类型是实现复杂业务逻辑的核心优势。本文将深入解析 Redis 六大核心数据类型及扩展类型ÿ…...
基于JSP+MySQL实现用户注册登录及短信发送功能
用户注册信息存入数据库 内容介绍 此项目是前台用户的登录和注册,,这部分包括两个子部分:其中一个为新用户注册,在这里我们可以通过注册浏览更多信息;另一个是用户登录,用户登录系统是一.般 Web 网站都有的子系统,其作用是限制该网站某些资…...
Spark-SQL核心编程2
路径问题 相对路径与绝对路径:建议使用绝对路径,避免复制粘贴导致的错误,必要时将斜杠改为双反斜杠。 数据处理与展示 SQL 风格语法:创建临时视图并使用 SQL 风格语法查询数据。 DSL 风格语法:使用 DSL 风格语法查询…...
Flink SQL SavePoint最佳实践
以下是 Flink SQL Savepoint 最佳实践,涵盖配置、触发、恢复及注意事项,高效管理作业状态: 一、Savepoint 的配置与触发 1. 基础配置 存储路径:在 flink-conf.yaml 中全局设置 Savepoint 存储目录,避免每次手动指定路…...
【无标题】Spark-SQL编程(2)
以下是今天学习的知识点以及代码测试: Spark-SQL核心编程(四) 实验内容: 利用IDEA开发Spark-SQL。 实验步骤: 利用IDEA开发Spark-SQL 创建子模块Spark-SQL,并添加依赖 <dependency> <grou…...
django项目之添加资产信息功能
资产信息功能添加 目录 1.创建表格 2.页面展示 3.新增和修改 4.删除 这篇文章的内容, 就是在前面做的基础上, 新增一个资产管理功能, 其实就和之前的部门信息还有员工信息差不多的, 但是这篇文章里面, 会有些细节的地方, 和之前的不太一样。那下面我们就开始讲述这篇文章…...
macos下 ~/.zshrc~ 和 ~/.zshrc
macos下 ~/.zshrc~ 和 ~/.zshrc ~/.zshrc通常是备份文件或临时文件,可能由编辑器(如vim)创建,通常可以安全删除,不会影响系统运行。 在Mac下,这种带~后缀的备份文件通常是由以下情况产生: 常…...
Kotlin集合操作陷阱与突围:如何优雅地边遍历边修改MutableList
在Kotlin开发中,MutableList是我们常用的集合类型之一。但当我们需要在遍历列表的同时修改它(添加或删除元素)时,很多开发者会遇到ConcurrentModificationException异常。本文将详细介绍如何安全高效地实现这一需求。 一、问题场…...
交换机与路由器的默契配合:它们的联系与区别
交换机与路由器的默契配合:它们的联系与区别 一. 交换机与路由器的基本功能1.1 交换机的功能1.2 路由器的功能 二. 交换机和路由器的区别三. 交换机和路由器的联系3.1 数据转发的协作3.2 网络分段与分隔3.3 协同工作提供互联网接入 四. 交换机和路由器的联合应用场景…...