头歌大数据答案(自用)

第一关

# 命令行
start-all.sh
nohup hive --service metastore &
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.col
import org.apache.spark.sql.functions._
object cleandata {def main(args: Array[String]): Unit = {//创建spark对象val spark = SparkSession.builder().appName("HiveSupport").master("local[*]").config("spark.sql.warehouse.dir", "hdfs://127.0.0.1:9000/opt/hive/warehouse").config("hive.metastore.uris", "thrift://127.0.0.1:9083").config("dfs.client.use.datanode.hostname", "true").enableHiveSupport().getOrCreate()//############# Begin ############//创建hive数据库daobidataspark.sql("create database daobidata")//创建hive数据表spark.sql("use daobidata")//创建diedata表spark.sql("create table if not exists diedata(bianh int,com_name string," +"com_addr string,cat string,se_cat string,com_des string,born_data string," +"death_data string,live_days int,financing string,total_money int,death_reason string,"+"invest_name string,ceo_name string,ceo_des string"+")row format delimited fields terminated by ',';")//将本地datadie.csv文件导入至hive数据库diedata表中spark.sql("load data local inpath '/data/workspace/myshixun/data/datadie.csv' into table diedata;")//进入diedata表进行清洗操作,删除为空的数据,根据倒闭原因切分出最主要原因,根据成立时间切分出,企业成立的年份,根据倒闭时间切分出,企业倒闭的年份val c1 = spark.table("diedata").na.drop("any").distinct().withColumn("death_reason",split(col("death_reason")," ")(0)).withColumn("bornyear",split(col("born_data"),"/")(0)).withColumn("deathyear",split(col("death_data"),"/")(0))c1.createOrReplaceTempView("c1")//创建die_data表spark.sql("create table if not exists die_data(bianh int,com_name string," +"com_addr string,cat string,se_cat string,com_des string,born_data string," +"death_data string,live_days int,financing string,total_money int,death_reason string,"+"invest_name string,ceo_name string,ceo_des string,bornyear string,deathyear string"+")row format delimited fields terminated by ',';")//将清洗完的数据导入至die_data表中spark.sql("insert overwrite table die_data select * from c1")//############# End ##############spark.stop()}
}

第二关

import org.apache.spark.sql.{SaveMode, SparkSession}
object citydiedata {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkCleanJob").master("local[*]").getOrCreate()//************* Begin **************//读取数据,用逗号分隔,第一行不做为数据,做为标题val df1 = spark.read.option("delimiter", ",").option("header",true).csv("/data/workspace/myshixun/die_data.csv")df1.createOrReplaceTempView("df1")//使用spark SQL语句,根据城市统计企业倒闭top5val df=spark.sql("select df1.com_addr as com_addr,count(df1.com_addr) as saddr from df1 group by df1.com_addr order by saddr desc limit 5").repartition(1).write//连接数据库.format("jdbc").option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//保存至数据库的数据表名.option("dbtable", "addr")//用户名.option("user", "root")//连接数据库的密码.option("password", "123123")//不破坏数据表结构,在后添加.mode(SaveMode.Append).save()//************ End ***********spark.stop()}
}   

import org.apache.spark.sql.{SaveMode, SparkSession}
object industrydata {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkCleanJob").master("local[*]").getOrCreate()//########## Begin ############//读取数据,用逗号分隔,第一行不做为数据,做为标题val df1 = spark.read.option("delimiter", ",").option("header",true).csv("/data/workspace/myshixun/die_data.csv")df1.createOrReplaceTempView("df1")//使用spark SQL语句,根据行业统计企业倒闭top10val df=spark.sql("select df1.cat as industry,count(df1.cat) as catindustry from df1 group by df1.cat order by catindustry desc limit 10 ").repartition(1).write//连接数据库.format("jdbc").option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "industry").option("user", "root").option("password", "123123")//不破坏数据表结构,在后添加.mode(SaveMode.Append).save()//############ End ###########spark.stop()}
}  

import org.apache.spark.sql.{SaveMode, SparkSession}
object closedown {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkCleanJob").master("local[*]").getOrCreate()//############ Begin ###########//读取数据,用逗号分隔,第一行不做为数据,做为标题val df1 = spark.read.option("delimiter", ",").option("header",true).csv("/data/workspace/myshixun/die_data.csv")df1.createOrReplaceTempView("df1")//使用spark SQL语句,根据倒闭原因字段,找到企业倒闭的主要原因,统计主要原因的个数val df=spark.sql("select df1.death_reason as death_reason,count(df1.death_reason) as dreason from df1 group by df1.death_reason order by dreason desc").repartition(1).write//连接数据库.format("jdbc")//数据库名.option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "cldown").option("user", "root").option("password", "123123")//不破坏表结构,在后面添加.mode(SaveMode.Append).save()//############ End ###########spark.stop()}
}

import org.apache.spark.sql.{SaveMode, SparkSession}
object comfinanc {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkCleanJob").master("local[*]").getOrCreate()//############ Begin ###########//读取数据,用逗号分隔,去除表头,第一行不做为数据,做为标题val df1 = spark.read.option("delimiter", ",").option("header",true).csv("/data/workspace/myshixun/die_data.csv")df1.createOrReplaceTempView("df1")//使用spark SQL语句,根据行业细分领域字段,统计企业倒闭分布情况top20val df=spark.sql("select df1.se_cat as se_cat,count(df1.se_cat) as countsecat from df1 group by df1.se_cat order by countsecat desc limit 10").repartition(1).write//连接数据库.format("jdbc").option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "secat").option("user", "root").option("password", "123123")//不破坏表结构,在后面添加.mode(SaveMode.Append).save()//使用spark SQL语句,统计倒闭企业融资情况val d1=spark.sql("select df1.financing as financing,count(df1.financing) as countfinanc from df1 group by df1.financing order by countfinanc desc").repartition(1).write//连接数据库.format("jdbc").option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "financing").option("user", "root").option("password", "123123")//不破坏表结构,在后面添加.mode(SaveMode.Append).save()//########## End #########spark.stop()}
}

import org.apache.spark.sql.{SaveMode, SparkSession}
object yeardata {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("SparkCleanJob").master("local[*]").getOrCreate()//############ Begin ###########//读取数据,用逗号分隔,第一行不做为数据,做为标题val df1 = spark.read.option("delimiter", ",").option("header",true).csv("/data/workspace/myshixun/die_data.csv")df1.createOrReplaceTempView("df1")//根据企业成立时间字段,统计每年有多少成立的企业val d1=spark.sql("select df1.bornyear as bornyear,count(df1.bornyear) as byear from df1 group by df1.bornyear order by bornyear desc limit 10").repartition(1).write//连接数据库.format("jdbc").option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "bornyear").option("user", "root").option("password", "123123")//不破坏表结构,在后面添加.mode(SaveMode.Append).save()//根据企业倒闭年份字段,统计企业每个年份倒闭的数量val d2=spark.sql("select df1.deathyear as deathyear,count(df1.deathyear) as dyear from df1 group by df1.deathyear order by deathyear desc limit 10").repartition(1).write//连接数据库.format("jdbc")//数据库名.option("url", "jdbc:mysql://127.0.0.1:3306/diedata?useUnicode=true&characterEncoding=utf-8").option("driver","com.mysql.jdbc.Driver")//数据表名.option("dbtable", "deathyear").option("user", "root").option("password", "123123")//不破坏表结构,在后面添加.mode(SaveMode.Append).save()//############# End ############spark.stop()}
}

第三关

from app import db
class diedata(db.Model):__tablename__ = "addr"#**************** Begin ************#ID = db.Column(db.Integer, primary_key=True)  ##序号 主键com_addr = db.Column(db.String(255))  ##城市saddr = db.Column(db.Integer)  ##统计企业倒闭数量#************* End *************#
from flask import render_template
from app.views import index
from app import db
from app.model.models import diedata
@index.route("/city")
def index1():selectdata = db.session.query(diedata.com_addr).all()selectdata1 = db.session.query(diedata.saddr).all()list1 =[]list2=[]#********** Begin **********##获取城市倒闭企业top5的数据for k in selectdata:data = {"com_addr": k.com_addr,}list1.append(data)for i in selectdata1:list2.append(i[0])return render_template("test3.html", com_addr=list1, saddr=list2)#*********** End ***********#
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>城市倒闭企业统计情况</title><script type="text/javascript" src="../static/js/echarts-all-3.js" ></script>
</head>
<body>
<!--准备一个DOM容器--><div id="main" style="width: 1500px;height: 650px;"></div><script>var myChart = echarts.init(document.getElementById('main'));//*********** Begin ***************com_addr=[]{% for a in com_addr %}com_addr.push('{{ a.com_addr }}');{% endfor %}var saddr={{saddr|tojson}};option = {title:{text:'城市倒闭企业top5展示图',left:'center'},legend: {data: ['城市倒闭企业个数'], //这里设置柱状图上面的方块,名称跟series里的name保持一致align: 'right', //图例显示的位置:靠左,靠右还是居中的设置.不设置则居中right: 10,},xAxis: {type: 'category',data: com_addr},yAxis: {type: 'value',name: '倒闭个数',axisLabel: {formatter: '{value} 个'}},series: [{data: saddr,type: 'bar',name: '城市倒闭企业个数',itemStyle: {normal: {color:'blue',lineStyle:{color:'blue'},label : {show: true}}}}]};myChart.setOption(option);//************ End ***************</script>
</body>
</html>

from app import db
class diedata(db.Model):__tablename__ = "industrydata"#************* Begin ************ID = db.Column(db.Integer, primary_key=True)  ##序号 主键industry = db.Column(db.String(255))  ##行业名catindustry = db.Column(db.Integer)  ##行业倒闭数#************* End ************
from flask import render_template
from app.views import index
from app import db
from app.model.models import diedata
@index.route("/industry")
def index1():#************* Begin ************selectdata = db.session.query(diedata.industry).all()selectdata1 = db.session.query(diedata.catindustry).all()list1 =[]list2=[]for k in selectdata:data = {"industry": k.industry,}list1.append(data)for i in selectdata1:list2.append(i[0])return render_template("test3.html", industry=list1, catindustry=list2)#************* End *************
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>城市倒闭企业统计情况</title><script type="text/javascript" src="../static/js/echarts-all-3.js" ></script>
</head>
<body>
<!--准备一个DOM容器--><div id="main" style="width: 1500px;height: 650px;"></div><script>var myChart = echarts.init(document.getElementById('main'));//************* Begin ************industry=[]{% for a in industry %}industry.push('{{ a.industry }}');{% endfor %}var catindustry={{catindustry|tojson}};option = {title:{text:'行业企业倒闭top10折线图',left:'center'},legend: {data: ['行业企业倒闭数'], //这里设置柱状图上面的方块,名称跟series里的name保持一致align: 'right', //图例显示的位置:靠左,靠右还是居中的设置.不设置则居中right: 10,},xAxis: {type: 'category',name: '行业分类',axisLabel: {formatter: '{value}'},data: industry},yAxis: {type: 'value',name: '行业企业倒闭数',axisLabel: {formatter: '{value} 个'}},series: [{name:'行业企业倒闭数',data: catindustry,type: 'line',smooth: true,label:{show:true},itemStyle: {normal: {color:'green',lineStyle:{color:'green'},label : {show: true}}}}]};myChart.setOption(option);//************* End ************</script>
</body>
</html>

from app import db
class diedata(db.Model):__tablename__ = "closedown"############ Begin ###########ID = db.Column(db.Integer, primary_key=True)  ##序号 主键death_reason = db.Column(db.String(255))  ##倒闭原因dreason = db.Column(db.Integer)  ##倒闭原因统计############ End ###########
from flask import render_template
from app.views import index
from app import db
from app.model.models import diedata
@index.route("/deathreason")
def index1():selectdata = db.session.query(diedata.death_reason,diedata.dreason).all()list1 =[]############# Begin ############for k in selectdata:data = {"name": k.death_reason,"value":k.dreason}list1.append(data)return render_template("test3.html", datas=list1)############# End ############
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>企业倒闭的原因</title><script type="text/javascript" src="../static/js/echarts-all-3.js" ></script>
</head>
<body>
<!--准备一个DOM容器--><div id="main" style="width: 1500px;height: 650px;"></div><script>var myChart = echarts.init(document.getElementById('main'));//########### Begin #############var datas={{datas|tojson}};option = {title: {text: '企业倒闭原因结果统计图',left: 'center'},legend: {top: 'bottom',data:datas},tooltip: {trigger: 'item',formatter: '{b} : {c} ({d}%)'},toolbox: {show: true},series: [{type: 'pie',radius: [50, 250],center: ['50%', '50%'],roseType: 'area',itemStyle: {borderRadius: 8},data:datas}]};myChart.setOption(option);//########### End #############</script>
</body>
</html>

from app import db
class diedata(db.Model):__tablename__ = "secat"############## Begin ###########ID = db.Column(db.Integer, primary_key=True)  ##序号 主键se_cat = db.Column(db.String(255))  ##细分领域countsecat = db.Column(db.Integer)  ##细分领域企业倒闭数############## End ############
class diedata1(db.Model):__tablename__ = "financing"############## Begin ###########ID = db.Column(db.Integer, primary_key=True)  ##序号 主键financing = db.Column(db.String(255))  ##融资名countfinanc = db.Column(db.Integer)  ##融资个数############## End ############
from flask import render_template
from app.views import index
from app import db
from app.model.models import diedata
from app.model.models import diedata1
@index.route("/fincat")
def index1():selectdata = db.session.query(diedata.se_cat).all()selectdata1 =db.session.query(diedata.countsecat).all()selectdata2=db.session.query(diedata1.financing).all()selectdata3=db.session.query(diedata1.countfinanc).all()list1 =[]list2 = []list3 = []list4 = []############## Begin ###########for i in selectdata:data = {"se_cat": i.se_cat,}list1.append(data)for j in selectdata1:list2.append(j[0])for x in selectdata2:data = {"financing": x.financing,}list3.append(data)for y in selectdata3:list4.append(y[0])return render_template("test3.html", se_cat=list1,countsecat=list2,financing=list3,countfinanc=list4)############## End ###########
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>企业融资以及细分领域倒闭企业数据</title><script type="text/javascript" src="../static/js/echarts-all-3.js" ></script>
</head>
<body>
<!--准备一个DOM容器--><div id="main" style="width: 1500px;height: 650px;"></div><script>var myChart = echarts.init(document.getElementById('main'));//############## Begin ###########se_cat=[]{% for a in se_cat %}se_cat.push('{{ a.se_cat }}');{% endfor %}var countsecat={{countsecat|tojson}};financing=[]{% for b in financing %}financing.push('{{ b.financing }}');{% endfor %}var countfinanc={{countfinanc|tojson}};option = {title: [{left: 'center',text: '细分领域企业倒闭数'},{top: '55%',left: 'center',text: '企业融资情况'}],tooltip: {trigger: 'axis'},legend: {data: ['细分领域', '融资'],left: 10},xAxis: [{data: se_cat},{data: financing,gridIndex: 1}],yAxis: [{},{gridIndex: 1}],grid: [{bottom: '60%'},{top: '60%'}],series: [{name:'细分领域',type: 'bar',showSymbol: true,data: countsecat,label:{show:true},itemStyle: {normal: {color:'red',lineStyle:{color:'red'},label : {show: true}}}},{name:'融资',type: 'line',showSymbol: true,data: countfinanc,xAxisIndex: 1,yAxisIndex: 1,label:{show:true},itemStyle: {normal: {color:'green',lineStyle:{color:'green'},label : {show: true}}}}]};myChart.setOption(option);//############## End ###########</script>
</body>
</html>

from app import db
class diedata(db.Model):__tablename__ = "bornyear"########### Begin ##########ID = db.Column(db.Integer, primary_key=True)  ##序号 主键bornyear = db.Column(db.String(255))  ##成立年份byear = db.Column(db.Integer)  ##计数########### End ##########
class diedata1(db.Model):__tablename__ = "deathyear"########### Begin ##########ID = db.Column(db.Integer, primary_key=True)  ##序号 主键deathyear = db.Column(db.String(255))  ##倒闭年份dyear = db.Column(db.Integer)  ##计数########### End ##########
from flask import render_template
from app.views import index
from app import db
from app.model.models import diedata
from app.model.models import diedata1
@index.route("/ydata")
def index1():########### Begin ##########selectdata = db.session.query(diedata.bornyear,diedata.byear).all()selectdata1 =db.session.query(diedata1.deathyear,diedata1.dyear).all()list1 =[]list2 = []list3 = []list4 = []for x in selectdata:list1.append(str(x[0])+'年')list2.append(x[1])for j in selectdata1:list3.append(str(j[0])+'年')list4.append(j[1])############ End ############return render_template("test3.html", bornyear=list1,byear=list2,deathyear=list3,dyear=list4)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>企业成立年份和倒闭年份</title><script type="text/javascript" src="../static/js/echarts-all-3.js" ></script>
</head>
<body>
<!--准备一个DOM容器--><div id="main" style="width: 1500px;height: 650px;"></div><script>//########### Begin ###########var myChart = echarts.init(document.getElementById('main'));var bornyear={{bornyear|tojson}};var byear={{byear|tojson}};var deathyear={{deathyear|tojson}};var dyear={{dyear|tojson}};option = {title: [{left: 'center',text: '企业成立年份柱状图'},{top: '55%',left: 'center',text: '企业倒闭年份柱状图'}],tooltip: {trigger: 'axis'},legend: {data: ['成立年份', '倒闭年份'],left: 10},xAxis: [{data: bornyear},{data: deathyear,gridIndex: 1}],yAxis: [{},{gridIndex: 1}],grid: [{bottom: '60%'},{top: '60%'}],series: [{name:'成立年份',type: 'bar',showSymbol: true,data: byear,label:{show:true},itemStyle: {normal: {color:'red',lineStyle:{color:'red'},label : {show: true}}}},{name:'倒闭年份',type: 'bar',showSymbol: true,data: dyear,xAxisIndex: 1,yAxisIndex: 1,label:{show:true},itemStyle: {normal: {color:'green',lineStyle:{color:'green'},label : {show: true}}}}]};myChart.setOption(option);//########### End ###########</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七、(正点原子)Linux并发与竞争

Linux是多任务操作系统&#xff0c;肯定会存在多个任务共同操作同一段内存或者设备的情况&#xff0c;多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护&#xff0c;也就是要处理对共享资源的并发访问。 一、并发与竞争 1、简介 并发就是多个…

Go - 4.数组和切片

目录 一.引言 二.定义 1.基础定义 2.引申理解 三.实战 1.估算切片的长度与容量 2.切片的切片长度与容量 四.拓展 1.估算切片容量的增长 2.切片底层数组的替换 五.总结 一.引言 本文主要讨论 Go 语言的数组 array 类型和切片 slice 类型。主要从二者的使用方法&…

【开源许可证】介绍

文章目录 概述具体总结 概述 开源许可证通常可以分为两大类&#xff1a;宽松式许可证及 Copyleft 许可证&#xff08;也称著作权&#xff09;。二者的差别主要在于宽松度以及与使用开源软件组件相关的要求和许可权限的多少。 当一个开源组件采用 Copyleft 许可证时&#xff0…

零成本!无需服务器,搭建你的个性化应用!

在快速发展的互联网时代&#xff0c;每个人都有创造自己应用的梦想。但是&#xff0c;传统的应用开发往往需要大量的技术和资源投入&#xff0c;这对于许多独立开发者和初创企业来说是一个巨大的挑战。幸运的是&#xff0c;现在有了 MemFire Cloud&#xff0c;这款无需服务器、…

工业 web4.0 的 UI 卓越非凡

工业 web4.0 的 UI 卓越非凡

前端易遭受的六大安全威胁,以及对应解决策略。

前端遭受安全威胁可能会导致用户隐私泄露、账户被盗用、系统遭受攻击、用户体验受损等严重后果&#xff0c;所有安全防御也成了前端开发者的必须课之一&#xff0c;贝格前端工场带领大家了解下常见的安全威胁。 一、前端开发面临的安全风险 1. 跨站脚本攻击&#xff08;XSS&a…

图形编辑器基于Paper.js教程02:图形图像编辑器概述

背景 由于笔者目前从事开发图形编辑器&#xff0c;在开始的那段时间里&#xff0c;调研和研究了非常多的图形编辑器&#xff0c;图像编辑器之类的软件&#xff0c;开源&#xff0c;闭源的&#xff0c;免费的&#xff0c;商业的都有。今天的这篇文章就来简单概述一下我调研的结…

SpringCloudNetflix组件整合

SpringCloudNetflix组件整合 Eureka注册中心 Eureka是什么 Eureka是netflix的一个子模块&#xff0c;也是核心模块之一&#xff0c;Eureka是一个基于REST的服务&#xff0c;用于定位服务&#xff0c;以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是…

AI学习指南机器学习篇-模型应用与Python实践

AI学习指南机器学习篇-模型应用与Python实践 在机器学习领域&#xff0c;模型应用是非常重要的一环&#xff0c;它涉及到数据的准备、模型的训练、模型的评估和预测等多个方面。本篇博客将从实际应用的角度&#xff0c;利用Python语言为大家介绍模型应用的全过程&#xff0c;并…

Python实现音乐播放器 -----------内附源码

Python做一个简易的音乐播放器 简易音乐播放器 import time import pygamefile r歌曲路径 pygame.mixer.init() print(正在播放,file) track pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(130) pygame.mixer.music.stop()运行效果&#xff1a; 开始…

EE trade:现货黄金的计量单位及转换

在现货黄金市场中&#xff0c;计量单位的不同会影响投资者对价格的理解和对交易的操作。因此&#xff0c;了解现货黄金的计量单位是每一位投资者的必修课。对于那些刚刚踏入黄金投资的新手们来说&#xff0c;掌握这些知识尤为重要。本文将为您详细介绍现货黄金的主要计量单位及…

绍兴市第七届青少年编程复赛题目(2008)

01&#xff1a;明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了试验的客观性&#xff0c;他先用计算机生成N个1到1000之间的随机整数&#xff08;N<100&#xff09;,对其中重复的数字&#xff0c;只保留一个&#xff0c;把其余相同的去…

Harbor本地仓库搭建004_Harbor配置管理功能_分布式分发功能_仓库管理_用户管理_垃圾清理_审查服务_项目定额---分布式云原生部署架构搭建00

然后我们再看一下配置管理,这里主要有个认证模式 这里我们是数据库,其实就是我们安装的postgresql 可以看到还有LDAP对吧,这个其实就是自己公司如果有 LDAP服务器,那么可以对接过来,那么,这个时候 再登录harbor的时候,就可以直接使用公司的,LDAP来管理,所有的用户了,其实就是…

AI项目二十三:危险区域识别系统

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 在IPC监控视频中&#xff0c;很多IPC现在支持区域检测&#xff0c;当在区域内检测到有人闯入时&#xff0c;发送报警并联动报警系统&#xff0c;以保障生命和财产安全具有重大意义。它能够在第一时间检测到人员进入…

ipython的使用技巧整理

IPython&#xff08;Interactive Python&#xff09;是一个功能强大的交互式计算环境&#xff0c;广泛用于数据分析、科学计算和编程开发。以下是一些实用的IPython使用技巧&#xff0c;帮助你更高效地使用这个工具。 ### 1. 基本操作 - **启动IPython**: 在终端输入 ipython …

Python酷库之旅-比翼双飞情侣库(16)

目录 一、xlwt库的由来 1、背景和需求 2、项目启动 3、功能特点 4、版本兼容性 5、与其他库的关系 6、示例和应用 7、发展历史 二、xlwt库优缺点 1、优点 1-1、简单易用 1-2、功能丰富 1-3、兼容旧版Excel 1-4、社区支持 1-5、稳定性 2、缺点 2-1、不支持.xls…

[创业之路-116] :制造业企业的必备管理神器-ERP-为什么?传统制造业的转型-数字化、智能化下的需求,ERP是管理面和资金面的数字化、智能化的需要

目录 一、时代背景&#xff1a;制造业企业与智能制造 1.1 传统的制造业 1、概念 2、特点 3、面临的挑战&#xff1a;内卷严重 4、发展趋势 1.2 制造业的转型&#xff1a;数字化 1.3 制造业的转型&#xff1a;智能化 1.4 制造业的转型&#xff1a;无人工厂 1、智能化 …

每日一题——8行Python代码实现PAT乙级1029 旧键盘(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 ​编辑我的写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 方法 1&#…

leetcode33:搜索旋转数组

题目链接&#xff1a;33. 搜索旋转排序数组 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int search(vector<int>& nums, int target) {int n (int)nums.size();if(!n){return -1;}if(n 1){return nums[0] target ? 0 : -1;}int left 0, …

pytest+parametrize+yaml实例

# 一、yaml格式 # # yaml是一种数据类型&#xff0c;可以和json之间灵活的切换&#xff0c;支持注释、换行、字符串等。可以用于配置文件或编写测试用例。 # # 数据结构&#xff1a;一般是键值对的方式出现。注意编写时值前面必须有空格&#xff0c;键&#xff1a;&#xff08;…