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

Spark常见面试题-部分待更新

1. 简述hadoop 和 spark 的不同点(为什么spark更快)
Hadoop是一个分布式管理、存储、计算的生态系统,包括HDFS(分布式文件系统)、MapReduce(计算引擎)和YARN(资源调度器)。Hadoop的作业称为Job,每个Job包含多个Map Task和Reduce Task,这些Task在各自的进程中运行,当Task结束时,进程也会随之结束‌
Spark是一个基于内存计算的框架,使用RDD(弹性分布式数据集)进行数据处理。Spark的任务称为Application,一个Application包含多个Job,每个Job可以进一步划分为多个Stage,每个Stage包含多个Task。Spark的Task可以在内存中执行,避免了频繁的磁盘读写操作,从而提高了处理速度‌
Hadoop使用MapReduce模型进行数据处理,数据需要在磁盘上进行读写操作,这导致了较高的I/O开销,从而影响了处理速度‌
Spark采用内存计算技术,数据存储在内存中,减少了磁盘I/O操作,显著提高了处理速度。Spark的处理速度通常是Hadoop的10到100倍‌

2. 谈谈你对RDD的理解
弹性分布式数据集(Resilient Distributed Dataset, RDD)是Apache Spark中的核心概念,它是一个容错的、并行的数据结构,可以让开发者以弹性的方式进行数据计算。

RDD具有以下特性:
分布式:RDD的数据可以分布在集群中的不同节点上。
弹性:RDD在执行过程中可以根据需要重新分布数据集。
不可变:RDD是只读的,要改变RDD,只能创建新的RDD。
缓存:可以把RDD缓存起来,在计算中再次使用。
容错:RDD的每个阶段都会进行校验和,如果在计算过程中有数据丢失,可以通过父RDD重建。
3. 简述spark的shuffle过程
Shuffle 过程本质上都是将 Map 端获得的数据使用分区器进行划分,并将数据发送给对应的 Reducer 的过程。

前一个stage的ShuffleMapTask进行shuffle write,把数据存储在blockManager上面,并且把数据元信息上报到dirver的mapOutTarck组件中,下一个stage根据数据位置源信息,进行shuffle read,拉取上一个stage的输出数据
1、基于哈希的shuffle操作:基于哈希的shuffle操作的原理在于将Mapper(stage)生成的中间数据,按照Reduce的数量(Reduce任务的数量取决于当前stage的RDD的分区数量)进行切分。切分成多个bucket,每个bucket对应一个文件。当reduce任务运行时,会根据任务的编号和所依赖的mapper编号远程或者从本地取得相应的bucket作为reduce任务的输入数据进行处理()

2、基于排序的shuffle操作: 基于哈希的shuffle操作会产生很多文件,这对文件系统来说是一个非诚大的负担,而且在总数据量不大而文件特别多的情况下,随机读写会严重降低I/O性能。大量文件的带来的问题还包括缓存。缓存所占用的内存过多是一笔很大的开销。每个shuffle map task只会产生一个索引文件,以及这个文件的索引,其中索引中 记载着,这个文件的那些数据是被下游的那些reduce task(stage)任务使用()

4. spark的作业运行流程是怎么样的
Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程序的main方法创建的SparkContext对象与集群交互。

1、Spark通过SparkContext向Cluster manager(资源管理器)申请所需执行的资源(cpu、内存等)
2、Cluster manager分配应用程序执行需要的资源,在Worker节点上创建Executor
3、SparkContext 将程序代码(jar包或者python文件)和Task任务发送给Executor执行,并收集结果给Driver。

5 spark driver的作用,以及client模式和cluster模式的区别
drive 主要负责管理整个集群的作业任务调度;executor是一个jvm进程,专门用于计算的节点
client模式下,driver运行在客户端;cluster模式下,driver运行在yarn集群。
6. 你知道Application、Job、Stage、Task他们之间的关系吗
1、一个应用程序对应多个job,一个job会有多个stage阶段,一个stage会有多个task
2、一个应用程序中有多少个行动算子就会创建多少个job作业;一个job作业中一个宽依赖会划分一个stage阶段;同一个stage阶段中最后一个算子有多少个分区这个stage就有多少个task,因为窄依赖每个分区任务是并行执行的,没有必要每个算子的一个分区启动一个task任务。如图所示阶段2最后一个map算子是对应5个分区,reducebykey是3个分区,总共是8个task任务。
3、当一个rdd的数据需要打乱重组然后分配到下一个rdd时就产生shuffle阶段,宽依赖就是以shuffle进行划分的。

7. Spark常见的算子介绍一下(10个以上)
Transformation算子
Transformation算子用于转换RDD,生成新的RDD,但不会立即执行计算。它们通常用于中间数据处理。

‌map‌:对RDD中的每个元素应用一个函数,返回一个新的RDD。
‌flatMap‌:将函数应用于RDD中的每个元素,并将结果扁平化成一个新的RDD。与map的区别在于flatMap可以处理集合类型的元素。
‌filter‌:过滤RDD,保留满足条件的元素,返回一个新的RDD。
‌union‌:合并两个或多个RDDs。
‌groupBy‌:根据给定的函数将元素分组,返回一个键值对RDD。
‌sortBy‌:根据给定的函数对RDD进行排序,返回一个新的有序RDD。
‌repartition‌:重新分区RDD,可以增加或减少分区数。
‌coalesce‌:减少RDD的分区数,主要用于优化性能。
Action算子
Action算子用于触发计算,并返回一个值或执行某些操作,但不返回新的RDD。

‌count‌:统计RDD中的元素个数。
‌collect‌:将RDD中的元素收集到Driver,并返回一个数组。
‌first‌:返回RDD中的第一个元素。
‌take‌:返回RDD中的前n个元素。
‌reduce‌:对RDD中的元素进行聚合操作。
‌saveAsTextFile‌:将RDD保存为文本文件。
‌foreach‌:对RDD中的每个元素应用一个函数,通常用于调试或数据导出。
8. 简述map和mapPartitions的区别
map算子‌:对RDD中的每个元素进行操作,每次传入一个元素到定义的函数中,返回处理后的元素。map算子的主要目的是将数据源中的数据进行转换和改变,不会减少或增多数据‌
‌mapPartitions算子‌:对RDD中的每个分区进行操作,每次传入一个分区的迭代器到定义的函数中,返回处理后的迭代器。mapPartitions算子可以增加或减少数据,因为它处理的是一批数据而不是单个元素‌
9. 你知道重分区的相关算子吗
repartition(numPartitions: Int): RDD[T]:这个算子会导致一个大的shuffle操作,它会根据一个hashpartitioner的方式来重新分区数据。
coalesce(numPartitions: Int, shuffle: Boolean = false): RDD[T]:这个算子用来减少RDD的分区数量,如果shuffle设置为false,那么只有当新的分区数大于原来的分区数的时候,这个操作才会减少计算资源。如果shuffle设置为true,那么这个操作会进行shuffle,不论新的分区数是否大于原来的分区数。
10. spark目前支持哪几种分区策略
‌HashPartitioner‌:采用哈希的方式对<Key,Value>键值对数据进行分区。其数据分区规则为partitionId = Key.hashCode % numPartitions,其中partitionId代表该Key对应的键值对数据应当分配到的Partition标识,Key.hashCode表示该Key的哈希值,numPartitions表示包含的Partition个数‌
‌RangePartitioner‌:将一定范围的数据映射到一个分区中。这种分区策略适用于需要对数据进行范围查询的场景‌
‌CustomPartitioner‌:用户可以根据具体需求自定义分区器,以满足特定的分区要求‌

11.简述groupByKey和reduceByKey的区别
‌reduceByKey‌:这是一个转换操作,它对具有相同键的元素执行一个聚合函数(reduce函数)。具体而言,它按键将元素进行分组,然后对每个组内的值进行合并操作,通常包括对相同键的所有值进行某种累积、求和或其他聚合操作。例如,rdd.reduceByKey(lambda x,y: x + y)会将相同的键的值累加起来‌
‌groupByKey‌:这也是一个转换操作,但它根据键对RDD中的元素进行分组,但不执行任何聚合操作。它只是将具有相同键的元素放在一个组中,形成一个包含键和其对应值的迭代器。例如,rdd.groupByKey()会将相同的键的值放在一起,但不进行任何聚合操作‌

  • 简述reduceByKey、foldByKey、aggregateByKey、combineByKey 的区别

13. 宽依赖和窄依赖之间的区别
窄依赖(Narrow Dependency)
窄依赖指的是父RDD的一个分区最多只被子RDD的一个分区所使用。这种依赖关系的特点是:
‌高效性‌:由于每个父RDD的分区只需传输给一个子RDD的分区,不存在数据混洗(shuffle)的过程,因此执行效率较高。
‌应用场景‌:常见的操作包括map、filter、union等,这些操作通常不会引起数据的重新组织。‌
宽依赖(Wide Dependency)
宽依赖指的是父RDD的一个分区被多个子RDD的分区所使用。这种依赖关系的特点是:
‌性能损失‌:由于需要重新组织和传输数据,宽依赖会导致性能损失,因为它需要进行全局的数据重新排序和传输,这在处理大规模数据集时尤为昂贵。
‌应用场景‌:常见的操作包括groupByKey、reduceByKey、sortByKey等,这些操作通常会引起数据的shuffle。‌

14. spark为什么需要RDD持久化,持久化的方式有哪几种,他们之间的区别是什么
Spark中的RDD(弹性分布式数据集)是懒加载的,只有在遇到行动算子(如collect、count等)时才会从头开始计算。如果同一个RDD被多次使用,每次都需要重新计算,这会显著增加计算开销。为了避免这种情况,可以将RDD持久化到内存或磁盘中,以便在后续操作中直接使用持久化的数据,从而避免重复计算,提高计算效率‌

  • cache‌

这是persist的一种简化方式,作用是将RDD缓存到内存中,以便后续快速访问。cache操作是懒执行的,即执行action算子时才会触发‌

  • ‌persist‌

提供了不同的存储级别,包括仅磁盘、仅内存、内存或磁盘、内存或磁盘+副本数、序列化后存入内存或磁盘等。用户可以根据不同的应用场景进行选择‌

  • ‌checkpoint‌

将数据永久保存,用于减少长血缘关系带来的容错成本。checkpoint不仅保存了数据,还保存了计算该数据的算子操作。当需要恢复数据时,可以通过这些操作重新计算,而不仅仅是依赖于原始数据。checkpoint在作业完成后仍然保留,可以用于后续的计算任务‌
在这里插入图片描述
15. 简述spark的容错机制

  • stage输出失败的时候,上层调度器DAGScheduler会进行重试
  • 计算过程中,某个task失败,底层调度器会进行重试。
  • 计算过程中,如果部分计算结果丢失,可以根据窄依赖和宽依赖的血统重新恢复计算。
  • 如果血统非常长,可以对中间结果做检查点,写入磁盘中,如果后续计算结果丢失,那么就从检查点的RDD开始重新计算

16. 除了RDD,你还了解spark的其他数据结构吗
算子以外的代码都是在Driver端执行,算子里面的代码都是在Executor端执行。
了解累加器和广播变量两种数据结构。
累加器就是分布式共享只写变量,简单说一下它的原理:累加器用来把Executor端变量信息聚合到Driver端。在Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行合并。
广播变量就是分布式共享只读变量,简单说一下它的原理:用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个或多个spark操作使用。

17. spark调优

18. 谈一谈RDD,DataFrame,DataSet的区别
RDD 提供了低级别的控制和灵活性,但性能通常较低。DataFrame 提供了结构化的数据处理和优化,但缺乏类型安全。Dataset 结合了两者的优点,提供了类型安全和高级操作,但在 PySpark 中,主要使用 DataFrame API。

  • RDD

不可变性:RDD 一旦创建,其内容不能更改。所有的转换操作都会生成一个新的 RDD。
分布式计算:RDD 以分布式方式存储在集群的多个节点上,并支持并行计算。
容错性:RDD 通过追踪其生成过程的血统信息(lineage)实现容错。如果某个分区的数据丢失,可以通过重新计算恢复数据。
操作:RDD 提供了两种操作:转换(如 map、filter、flatMap)和行动(如 collect、count、reduce)。

  • DataFrame
    结构化数据:DataFrame 有明确的列和数据类型,类似于关系型数据库中的表。
    优化:通过 Catalyst 优化器进行查询优化,并支持 Tungsten 执行引擎以提高性能。
    操作:支持 SQL 查询、DataFrame 操作(如 select、filter、join、groupBy)。
  • Dataset
    类型安全:在编译时检查数据类型错误,提供类型安全的操作。
    高层次 API:提供类似于 DataFrame 的高级操作,同时保留类型安全的特性。
    操作:支持类型安全的操作(如 map、flatMap、filter),并且可以通过 DataFrame API 进行操作。

在这里插入图片描述

19. Hive on Spark与SparkSql的区别
‌Spark SQL‌:主要用于结构化数据处理和对Spark数据执行类SQL的查询。它通过SQL解析引擎解析SQL语句,最终转换为Spark RDD的方式去执行。Spark SQL的目的是为懂得数据库管理系统(DBMS)但不熟悉Spark的用户准备的‌

‌Hive on Spark‌:Hive作为数据仓库,负责一部分的解析和优化计算,而Spark作为Hive的底层执行引擎之一,负责一部分的计算。Hive on Spark结合了Hive的SQL处理能力和Spark的计算性能,提供了高效的数据处理能力‌

20. sparksql的三种join实现

  • Broadcast Join
    将大小有限的维度表的全部数据分发到每个节点上,供事实表使用。executor存储维度表的全部数据,一定程度上牺牲了空间,换取shuffle操作大量的耗时,这在SparkSQL中称作 Broadcast Join。
  • Shuffle Hash Join
    当表比较大时,采用 broadcast join 会对driver端和executor端造成较大的压力,可以通过分区的形式将大批量的数据划分成n份较小的数据集进行并行计算利用key相同必然分区相同的这个原理,Spark SQL将较大表的 join 分而治之,先将表划分成 n 个分区,再对两个表中相对应分区的数据分别进行 Hash Join,这样即在一定程度上减少了driver广播一侧表的压力,也减少了executor端取整张被广播表的内存消耗。
  • Sort Merge Join (大表对大表)

上面介绍的两种实现对于一定大小的表表适用,但当两个表都非常大时,显然无论用哪种都会对计算内存造成很大压力。这是因为join 时两者采取的都是 hash join,
首先将两张表按照 join keys 进行了重新shuffle,保证 join keys值相同的记录会被分在相应的分区。分区后对每个分区内的数据进行排序,排序后再对相应的分区内的记录进行连接。因为两个序列都是有序的,从头遍历,碰到 key 相同的就输出,如果不同,左边小就继续取左边,反之取右边。可以看出,无论分区有多大,Sort Merge Join 都不用把某一侧的数据全部加载到内存中,而是即用即丢,从而大大提升了大数量下 sql join 的稳定性。

  • 简单介绍下sparkstreaming

  • 你知道sparkstreaming的背压机制吗

  • SparkStreaming有哪几种方式消费Kafka中的数据,它们之间的区别是什么

相关文章:

Spark常见面试题-部分待更新

1. 简述hadoop 和 spark 的不同点&#xff08;为什么spark更快&#xff09; Hadoop是一个分布式管理、存储、计算的生态系统&#xff0c;包括HDFS&#xff08;分布式文件系统&#xff09;、MapReduce&#xff08;计算引擎&#xff09;和YARN&#xff08;资源调度器&#xff09;…...

Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin

Android BitmapShader实现狙击瞄具十字交叉线准星&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.…...

linux通过web向mac远程传输字符串,mac收到后在终端中直接打印。

要通过Web从Linux向Mac远程传输字符串&#xff0c;并在Mac的终端中直接打印&#xff0c;可以使用以下方法。这里假设Linux作为服务器&#xff0c;Mac作为客户端。 方法 1&#xff1a;使用Python的HTTP服务器 在Linux上启动一个简单的HTTP服务器&#xff0c;Mac通过curl获取字符…...

海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”

2024年12月27日&#xff0c;粤港澳大湾区AI领袖峰会在深圳成功举办&#xff0c;大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人&#xff0c;深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时&#xff0c;公…...

Spring Boot + Apache POI 实现 Excel 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并)

目录 引言 Apache POI操作Excel的实用技巧 1.合并单元格操作 2.设置单元格样式 1. 创建样式对象 2. 设置边框 3. 设置底色 4. 设置对齐方式 5. 设置字体样式 6.设置自动换行 7. 应用样式到单元格 3. 定位和操作指定单元格 4.实现标签-值的形式 5.列宽设置 1. 设…...

ReactiveSwift 简单使用

记录 ReactiveSwift 简单使用 导入 ReactiveSwift 库创建 TestViewModel 文件 enum JKTypeType: Int {case cloudcase devicecase weater }// 通过监听属性变化 class TestViewModel: NSObject {lazy var recordType: Property<JKTypeType> {return Property(recordTy…...

CSS 的基础知识及应用

前言 CSS&#xff08;层叠样式表&#xff09;是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现&#xff0c;使页面不仅实现功能&#xff0c;还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…...

【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)

目录 Rank-l Rank-U sqli or not Rank-l username存在报错回显&#xff0c;发现可以打SSTI 本地起一个服务&#xff0c;折半查找fuzz黑名单&#xff0c;不断扔给fenjing去迭代改payload from flask import Flask, request, render_template_stringapp Flask(__name__)app…...

能源物联网数据采集设备 串口服务器功能参数介绍

摘要 ​随着物联网技术的快速发展&#xff0c;各种传统设备的联网需求愈发迫切。串口服务器作为一种桥接传统串口设备与现代网络的关键设备&#xff0c;在工业控制、智能电网、交通运输等域发挥了重要作用。本文以APort100串口服务器为例&#xff0c;探讨串口服务器在现代物联…...

在线json格式化工具

在线json格式化工具,包括中文和英文版本,无需登录&#xff0c;无需费用&#xff0c;用完就走。 官网地址&#xff1a; https://json.openai2025.com 效果如下&#xff1a;...

OSPF的LSA的学习研究

OSPF常见1、2、3、4、5、7类LSA的研究 1、拓扑如图&#xff0c;按照地址表配置&#xff0c;激活OSPF划分相关区域并宣告相关网段 2、1类LSA&#xff0c;每台运行了OSPF的路由器都会产生&#xff0c;描述了路由器的直连接口状况和cost 可以看到R1产生了一条router lsa&#xff0…...

1166 Summit (25)

A summit (峰会) is a meeting of heads of state or government. Arranging the rest areas for the summit is not a simple job. The ideal arrangement of one area is to invite those heads so that everyone is a direct friend of everyone. Now given a set of tenta…...

AUTOSAR从入门到精通-【自动驾驶】高精地图(四)

目录 前言 现状概述 算法原理 高精地图的构成 A.基础地图层 B.几何地图层 C.语义地图层 D.道路连接层 E.先验地图层 F.实时地图数据 高精地图的构建及维护 移动建图系统 高精地图维护 A.地图变换检测 B.地图数据更新 3. 众包建图 3.1 众包建图的优劣势 3.2 众包起源:M…...

MySQL8数据库全攻略:版本特性、下载、安装、卸载与管理工具详解

大家好&#xff0c;我是袁庭新。 MySQL作为企业项目中的主流数据库&#xff0c;其5.x和8.x版本尤为常用。本文将详细介绍MySQL 8.x的特性、下载、安装、服务管理、卸载及管理工具&#xff0c;旨在帮助用户更好地掌握和使用MySQL数据库。 1.MySQL版本及下载 企业项目中使用的…...

网络安全---CMS指纹信息实战

CMS简介 CMS&#xff08;Content Management System&#xff09;指的是内容管理系统&#xff0c;如WordPress、Joomla等。CMS系统非常常见&#xff0c;几乎所有大型网站都使用CMS来管理其网站的内容。由于常见CMS的漏洞较多&#xff0c;因此黑客将不断尝试利用这些漏洞攻击CMS…...

基于C#实现对象序列化的3种方案

大家好&#xff01;我是付工。 在上位机开发过程中&#xff0c;我们可能经常要实现一个数据对象的持久化&#xff0c;将对象保存到具体的文件中&#xff0c;今天给大家介绍常用的3种方案&#xff0c;大家根据实际情况&#xff0c;选择适合的方案。 一、准备工作 在介绍这4种…...

蓝桥杯真题 - 公因数匹配 - 题解

题目链接&#xff1a;https://www.lanqiao.cn/problems/3525/learning/ 个人评价&#xff1a;难度 2 星&#xff08;满星&#xff1a;5&#xff09; 前置知识&#xff1a;调和级数 整体思路 题目描述不严谨&#xff0c;没说在无解的情况下要输出什么&#xff08;比如 n n n …...

使用 Java 实现基于 DFA 算法的敏感词检测

使用 Java 实现基于 DFA 算法的敏感词检测 1. 引言 敏感词检测在内容审核、信息过滤等领域有着广泛的应用。本文将介绍如何使用 DFA&#xff08;Deterministic Finite Automaton&#xff0c;确定有限状态自动机&#xff09; 算法&#xff0c;在 Java 中实现高效的敏感词检测。…...

Jenkins-Pipeline简述

一. 什么是Jenkins pipeline&#xff1a; pipeline在jenkins中是一套插件&#xff0c;主要功能在于&#xff0c;将原本独立运行于单个或者多个节点的任务连接起来&#xff0c;实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL&#xff0c;任何发布流程…...

Linux操作命令之云计算基础命令

一、图形化界面/文本模式 ctrlaltF2-6 图形切换到文本 ctrlalt 鼠标跳出虚拟机 ctrlaltF1 文本切换到图形 shift ctrl "" 扩大 ctrl "-" 缩小 shift ctrl "n" 新终端 shift ctrl "t" 新标签 alt 1,…...

【postgres】sqlite格式如何导入postgres数据库

step1 在ubuntu系统安装pgloader&#xff08;centos系统难以直接通过yum安装&#xff0c;如果源码安装的话&#xff0c;会比较费劲&#xff09; step2&#xff0c;执行如下python脚本 from pathlib import Path import subprocess dataset_dir Path(/app/sqlite_to_pg/chas…...

阀井可燃气体监测仪,开启地下管网安全新篇章-旭华智能

在城市的脉络中&#xff0c;地下管网犹如隐秘的动脉&#xff0c;支撑着现代生活的运转。而在这庞大网络的关键节点上&#xff0c;阀井扮演着不可或缺的角色。然而&#xff0c;由于其密闭性和复杂性&#xff0c;阀井内部一旦发生可燃气体泄漏&#xff0c;将对公共安全构成严重威…...

《offer 来了:Java 面试核心知识点精讲 -- 原理篇》

在 Java 面试的战场上&#xff0c;只知皮毛可不行&#xff0c;面试官们越来越看重对原理的理解。今天就给大家分享一本能让你在面试中脱颖而出的 “武林秘籍”——《offer 来了&#xff1a;Java 面试核心知识点精讲 -- 原理篇》。 本书详细介绍了Java架构师在BAT和移动互联网公…...

搭建一个基于Spring Boot的数码分享网站

搭建一个基于Spring Boot的数码分享网站可以涵盖多个功能模块&#xff0c;例如用户管理、数码产品分享、评论、点赞、收藏、搜索等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的数码分享平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个Spring …...

K210视觉识别模块

K210视觉识别模块是一款功能强大的AI视觉模块&#xff0c;以下是对其的详细介绍&#xff1a; 一、核心特性 强大的视觉识别功能&#xff1a;K210视觉识别模块支持多种视觉功能&#xff0c;包括但不限于人脸识别、口罩识别、条形码和二维码识别、特征检测、数字识别、颜色识别…...

JAVA:在IDEA引入本地jar包的方法(不读取maven目录jar包)

问题&#xff1a; 有时maven使用的jar包版本是最新版&#xff0c;但项目需要的是旧版本&#xff0c;每次重新install会自动将mavan的jar包覆盖到项目的lib目录中&#xff0c;导致项目报错。 解决&#xff1a; 在IDEA中手动配置该jar包对应的目录。 点击菜单File->Projec…...

存在重复元素(217)

217. 存在重复元素 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool containsDuplicate(vector<int>& nums) {//stl sortsort(nums.begin(), nums.end());for (int i 0; i < nums.size() - 1; i) {if (nums[i] nums[i1]) {return true;}…...

聊聊如何实现Android 放大镜效果

一、前言 很久没有更新Android 原生技术内容了&#xff0c;前些年一直在做跨端方向开发&#xff0c;最近换工作用重新回到原生技术&#xff0c;又回到了熟悉但有些生疏的环境&#xff0c;真是感慨万分。 近期也是因为准备做地图交互相关的需求&#xff0c;功能非常复杂&#x…...

linux 安装mysql5.6

下载mysql安装包 https://dev.mysql.com/downloads/mysql/5.6.html卸载系统自带的mariadb [rootgpap-prod-3 ~]# rpm -qa| grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 [rootgpap-prod-3 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 warning: /etc/my.cnf sav…...

【Vue3 入门到实战】3. ref 和 reactive区别和适用场景

目录 ​编辑 1. ref 部分 1.1 ref定义基本数据类型 1.2 ref 定义引用数据类型 2. reactive 函数 3. ref 和 reactive 对比 3.1 原理 3.2 区别 3.3 使用原则 在 Vue 3 中 ref 和 reactive 是用于创建响应式数据的两个核心函数。它们都属于 Composition API 的一部分&…...

企业网站域名后缀/百度百家自媒体平台注册

注&#xff1a;此方法适用于初学配置 虚拟机的同学。其中包含 网络信息安全方向&#xff0c;云计算运维方向的 虚拟机配置&#xff0c;我尽量写的通俗易懂一点。&#xff08;WIN10操作系统&#xff09; 问题的出现&#xff1a; 最近在研究学习云计算&#xff0c;搭建OpenStack云…...

网站建设与微店/东营网站建设

Singleton.php文件namespace app\singleton\controller;/*** Class Singleton 单例模式*/class Singleton{/*** var null private\static&#xff1a;一个类只有一个实例*/private static $singleton null;/*** Singleton constructor. private&#xff1a;不允许外部实例化&a…...

井陉建设局网站公示/新闻头条最新消息

原来没有接触过软件工程方面的东东&#xff0c;感觉离自己很要遥远的样子&#xff0c;因为觉得我用软件就好&#xff0c;并不关心它是怎么设计出来的&#xff0c;但是作为新世纪的高科技人才还是要对此有一些基本的了解滴&#xff0c;感谢邹欣老师给了我们这样一个机会&#xf…...

建设银行苏州网站/百度经验首页官网

PMP&#xff08;Project Management Professional&#xff09;指项目管理专业人员资格认证。它是由美国项目管理协会Project Management Institute(PMI)发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。其目的是为了给项目管理人员提供统一的行业…...

哪里有做彩票网站了/国内最近的新闻大事

为什么80%的码农都做不了架构师&#xff1f;>>> IE6下window.location.href"www.baidu.com"无法打开&#xff0c;改为window.location.href"http://www.baidu.com" 问题解决。 原因&#xff1a;IE6下window.location.href值必须写上完整的地址…...

如何查公司网站谁家做的/关键词拓展工具有哪些

redundans的目标是辅助杂合基因组的组装&#xff0c;输入文件可以是组装的contig&#xff0c;测序文库以及额外的参考基因组&#xff0c;最后用于搭建出scaffold级别的纯合基因组组装结果。包括如下几个步骤&#xff1a; 从头组装: 它会调用Platanus、SSPACE3进行组装去冗余: 从…...