阿里云天池 Python训练营Task4: Python数据分析:从0完成一个数据分析实战 学习笔记

本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/promotion/aicamppython?spm=5176.22758685.J_6770933040.1.6f103da1tESyzu

一、学习知识点概要

本次主要通过阿里云天池的赛题【Python入门系列】用Pandas揭秘美国选民的总统喜好 进行学习,主要学习内容有:

  • 数据集获取
  • 数据处理
  • 数据探索和清洗
  • 数据分析
  • 数据可视化

二、学习内容

1.数据集获取

首先,我们需要获取以下信息:

所有候选人信息
该文件为每个候选人提供一份记录,并显示候选人的信息、总收入、从授权委员会收到的转账、付款总额、给授权委员会的转账、库存现金总额、贷款和债务以及其他财务汇总信息。
数据字段描述详细:https://www.fec.gov/campaign-finance-data/all-candidates-file-description/
关键字段说明

  • CAND_ID 候选人ID
  • CAND_NAME 候选人姓名
  • CAND_PTY_AFFILIATION 候选人党派

数据来源:https://www.fec.gov/files/bulk-downloads/2020/weball20.zip

 

候选人委员会链接信息
该文件显示候选人的身份证号码、候选人的选举年份、联邦选举委员会选举年份、委员会识别号、委员会类型、委员会名称和链接标识号。
信息描述详细:https://www.fec.gov/campaign-finance-data/candidate-committee-linkage-file-description/
关键字段说明

  • CAND_ID 候选人ID
  • CAND_ELECTION_YR 候选人选举年份
  • CMTE_ID 委员会ID

数据来源:https://www.fec.gov/files/bulk-downloads/2020/ccl20.zip

 

个人捐款档案信息 【注意】由于文件较大,本数据集只包含2020.7.22-2020.8.20的相关数据,如果需要更全数据可以通过数据来源中的地址下载。
该文件包含有关收到捐款的委员会、披露捐款的报告、提供捐款的个人、捐款日期、金额和有关捐款的其他信息。
信息描述详细:https://www.fec.gov/campaign-finance-data/contributions-individuals-file-description/
关键字段说明

  • CMTE_ID 委员会ID
  • NAME 捐款人姓名
  • CITY 捐款人所在市
  • State 捐款人所在州
  • EMPLOYER 捐款人雇主/公司
  • OCCUPATION 捐款人职业

数据来源:https://www.fec.gov/files/bulk-downloads/2020/indiv20.zip

接着我们需要安装词云处理包

# 安装词云处理包wordcloud
!pip install wordcloud --user

2.数据处理

进行数据处理前,我们需要知道我们最终想要的数据是什么样的,因为我们是想分析候选人与捐赠人之间的关系,所以我们想要一张数据表中有捐赠人与候选人一一对应的关系,所以需要将目前的三张数据表进行一一关联,汇总到需要的数据。

2.1 将委员会和候选人一一对应,通过CAND_ID关联两个表

由于候选人和委员会的联系表中无候选人姓名,只有候选人ID(CAND_ID),所以需要通过CAND_ID从候选人表中获取到候选人姓名,最终得到候选人与委员会联系表ccl

# 导入相关处理包
import pandas as pd
# 读取候选人信息,由于原始数据没有表头,需要添加表头
candidates = pd.read_csv("weball20.txt", sep = '|',names=['CAND_ID','CAND_NAME','CAND_ICI','PTY_CD','CAND_PTY_AFFILIATION','TTL_RECEIPTS','TRANS_FROM_AUTH','TTL_DISB','TRANS_TO_AUTH','COH_BOP','COH_COP','CAND_CONTRIB','CAND_LOANS','OTHER_LOANS','CAND_LOAN_REPAY','OTHER_LOAN_REPAY','DEBTS_OWED_BY','TTL_INDIV_CONTRIB','CAND_OFFICE_ST','CAND_OFFICE_DISTRICT','SPEC_ELECTION','PRIM_ELECTION','RUN_ELECTION','GEN_ELECTION','GEN_ELECTION_PRECENT','OTHER_POL_CMTE_CONTRIB','POL_PTY_CONTRIB','CVG_END_DT','INDIV_REFUNDS','CMTE_REFUNDS'])
# 读取候选人和委员会的联系信息
ccl = pd.read_csv("ccl.txt", sep = '|',names=['CAND_ID','CAND_ELECTION_YR','FEC_ELECTION_YR','CMTE_ID','CMTE_TP','CMTE_DSGN','LINKAGE_ID'])
# 关联两个表数据
ccl = pd.merge(ccl,candidates)
# 提取出所需要的列
ccl = pd.DataFrame(ccl, columns=[ 'CMTE_ID','CAND_ID', 'CAND_NAME','CAND_PTY_AFFILIATION'])

数据字段说明:

  • CMTE_ID:委员会ID
  • CAND_ID:候选人ID
  • CAND_NAME:候选人姓名
  • CAND_PTY_AFFILIATION:候选人党派

2.2 将候选人和捐赠人一一对应,通过CMTE_ID关联两个表

通过CMTE_ID将目前处理好的候选人和委员会关系表与人捐款档案表进行关联,得到候选人与捐赠人一一对应联系表cil

# 读取个人捐赠数据,由于原始数据没有表头,需要添加表头
# 提示:读取本文件大概需要5-10s
itcont = pd.read_csv('itcont_2020_20200722_20200820.txt', sep='|',names=['CMTE_ID','AMNDT_IND','RPT_TP','TRANSACTION_PGI','IMAGE_NUM','TRANSACTION_TP','ENTITY_TP','NAME','CITY','STATE','ZIP_CODE','EMPLOYER','OCCUPATION','TRANSACTION_DT','TRANSACTION_AMT','OTHER_ID','TRAN_ID','FILE_NUM','MEMO_CD','MEMO_TEXT','SUB_ID'])
# 将候选人与委员会关系表ccl和个人捐赠数据表itcont合并,通过 CMTE_ID
c_itcont =  pd.merge(ccl,itcont)
# 提取需要的数据列
c_itcont = pd.DataFrame(c_itcont, columns=[ 'CAND_NAME','NAME', 'STATE','EMPLOYER','OCCUPATION','TRANSACTION_AMT', 'TRANSACTION_DT','CAND_PTY_AFFILIATION'])

数据说明

  • CAND_NAME – 接受捐赠的候选人姓名
  • NAME – 捐赠人姓名
  • STATE – 捐赠人所在州
  • EMPLOYER – 捐赠人所在公司
  • OCCUPATION – 捐赠人职业
  • TRANSACTION_AMT – 捐赠数额(美元)
  • TRANSACTION_DT – 收到捐款的日期
  • CAND_PTY_AFFILIATION – 候选人党派

3.数据探索和清洗

进过数据处理部分,我们获得了可用的数据集,现在我们可以利用调用shape属性查看数据的规模,调用info函数查看数据信息,调用describe函数查看数据分布。

# 查看数据规模 多少行 多少列
c_itcont.shape
#(756205, 8)
# 查看整体数据信息,包括每个字段的名称、非空数量、字段的数据类型
c_itcont.info()
'''
<class 'pandas.core.frame.DataFrame'>
Int64Index: 756205 entries, 0 to 756204
Data columns (total 8 columns):#   Column                Non-Null Count   Dtype 
---  ------                --------------   ----- 0   CAND_NAME             756205 non-null  object1   NAME                  756205 non-null  object2   STATE                 756160 non-null  object3   EMPLOYER              737413 non-null  object4   OCCUPATION            741294 non-null  object5   TRANSACTION_AMT       756205 non-null  int64 6   TRANSACTION_DT        756205 non-null  int64 7   CAND_PTY_AFFILIATION  756205 non-null  object
dtypes: int64(2), object(6)
memory usage: 51.9+ MB
'''

通过上面的探索我们知道目前数据集的一些基本情况,目前数据总共有756205行,8列,总占用内存51.9+MB,STATEEMPLOYEROCCUPATION有缺失值,另外日期列目前为int64类型,需要进行转换为str类型。

#空值处理,统一填充 NOT PROVIDEDc_itcont['STATE'].fillna('NOT PROVIDED',inplace=True)c_itcont['EMPLOYER'].fillna('NOT PROVIDED',inplace=True)c_itcont['OCCUPATION'].fillna('NOT PROVIDED',inplace=True)
# 对日期TRANSACTION_DT列进行处理
c_itcont['TRANSACTION_DT'] = c_itcont['TRANSACTION_DT'] .astype(str)
# 将日期格式改为年月日  7242020	
c_itcont['TRANSACTION_DT'] = [i[3:7]+i[0]+i[1:3] for i in c_itcont['TRANSACTION_DT'] ]
# 再次查看数据信息
'''
c_itcont.info()<class 'pandas.core.frame.DataFrame'>
Int64Index: 756205 entries, 0 to 756204
Data columns (total 8 columns):#   Column                Non-Null Count   Dtype 
---  ------                --------------   ----- 0   CAND_NAME             756205 non-null  object1   NAME                  756205 non-null  object2   STATE                 756205 non-null  object3   EMPLOYER              756205 non-null  object4   OCCUPATION            756205 non-null  object5   TRANSACTION_AMT       756205 non-null  int64 6   TRANSACTION_DT        756205 non-null  object7   CAND_PTY_AFFILIATION  756205 non-null  object
dtypes: int64(1), object(7)
memory usage: 51.9+ MB
'''
# 查看数据表中数据类型的列的数据分布情况
c_itcont.describe()
'''TRANSACTION_AMT
count	7.562050e+05
mean	1.504307e+02
std	    2.320452e+03
min	   -5.600000e+03
25%	    2.000000e+01
50%	    3.500000e+01
75%	    1.000000e+02
max	    1.500000e+06
'''
# 查看单列的数据发布情况
c_itcont['CAND_NAME'].describe()
'''
count                 756205
unique                   312
top       BIDEN, JOSEPH R JR
freq                  507816
Name: CAND_NAME, dtype: object
'''

4.数据分析

# 计算每个党派的所获得的捐款总额,然后排序,取前十位
c_itcont.groupby("CAND_PTY_AFFILIATION").sum().sort_values("TRANSACTION_AMT",ascending=False).head(10)
'''TRANSACTION_AMT
CAND_PTY_AFFILIATION	DEM    75961730REP	37170653IND	328802LIB	169202DFL	76825GRE	18607NON	11256UNK	10195CON	4117BDY	3250
'''# 计算每个总统候选人所获得的捐款总额,然后排序,取前十位
c_itcont.groupby("CAND_NAME").sum().sort_values("TRANSACTION_AMT",ascending=False).head(10)
'''TRANSACTION_AMTCAND_NAME	BIDEN, JOSEPH R JR	68111142TRUMP, DONALD J.	16594982SULLIVAN, DAN	9912465JACOBS, CHRISTOPHER L.	6939209BLOOMBERG, MICHAEL R.	3451916MARKEY, EDWARD J. SEN.	606832SHAHEEN, JEANNE	505446KENNEDY, JOSEPH P III	467738CORNYN, JOHN SEN	345959
FIGLESTHALER, WILLIAM MATTHEW MD	258221
'''

获得捐赠最多的党派有DEM(民主党)REP(共和党),分别对应BIDEN, JOSEPH R JR(拜登)TRUMP, DONALD J.(特朗普),从我们目前分析的2020.7.22-2020.8.20这一个月的数据来看,在选民的捐赠数据中拜登代表的民主党完胜特朗普代表的共和党,由于完整数据量过大,所以没有对所有数据进行汇总分析,因此也不能确定11月大选公布结果就一定是拜登当选。

# 查看不同职业的人捐款的总额,然后排序,取前十位
c_itcont.groupby('OCCUPATION').sum().sort_values("TRANSACTION_AMT",ascending=False).head(10)
'''TRANSACTION_AMTOCCUPATION	
NOT EMPLOYED	24436214RETIRED	18669950
NOT PROVIDED	5089355ATTORNEY	4443569FOUNDER	3519109PHYSICIAN	3295595CONSULTANT	1647033LAWYER	1565976PROFESSOR	1481260EXECUTIVE	1467865
'''
# 查看每个职业捐款人的数量
c_itcont['OCCUPATION'].value_counts().head(10)
'''
NOT EMPLOYED    224109
RETIRED         151834
ATTORNEY         19666
NOT PROVIDED     14912
PHYSICIAN        14033
CONSULTANT        8333
PROFESSOR         8022
TEACHER           8013
ENGINEER          7922
SALES             6435
Name: OCCUPATION, dtype: int64
'''

从捐款人的职业这个角度分析,我们会发现NOT EMPLOYED(自由职业)的总捐赠额是最多,通过查看每个职业捐赠的人数来看,我们就会发现是因为NOT EMPLOYED(自由职业)人数多的原因,另外退休人员捐款人数也特别多,所以捐款总数对应的也多,其他比如像:律师、创始人、医生、顾问、教授、主管这些高薪人才虽然捐款总人数少,但是捐款总金额也占据了很大比例。

# 每个州获捐款的总额,然后排序,取前五位
c_itcont.groupby('STATE').sum().sort_values("TRANSACTION_AMT",ascending=False).head(5)
'''TRANSACTION_AMT
STATE	CA	19999115NY	11468537FL	8128789TX	8101871MA	5187957
'''
# 查看每个州捐款人的数量
c_itcont['STATE'].value_counts().head(5)
'''
CA    127895
TX     54457
FL     54343
NY     49453
MA     29314
Name: STATE, dtype: int64
'''

最后查看每个州的捐款总金额,我们会发现CA(加利福利亚)NY(纽约)FL(弗罗里达)这几个州的捐款是最多的,在捐款人数上也是在Top端,另一方面也凸显出这些州的经济水平发达。 大家也可以通过数据查看下上面列举的高端职业在各州的分布情况,进行进一步的分析探索。

5.数据可视化

首先导入相关Python库

# 导入matplotlib中的pyplot
import matplotlib.pyplot as plt
# 为了使matplotlib图形能够内联显示
%matplotlib inline
# 导入词云库
from wordcloud import WordCloud,ImageColorGenerator

5.1 按州总捐款数和总捐款人数柱状图

# 各州总捐款数可视化
st_amt = c_itcont.groupby('STATE').sum().sort_values("TRANSACTION_AMT",ascending=False)[:10]
st_amt=pd.DataFrame(st_amt, columns=['TRANSACTION_AMT'])
st_amt.plot(kind='bar')
<AxesSubplot:xlabel='STATE'>

5.2 各州捐款总人数可视化

# 各州捐款总人数可视化,取前10个州的数据
st_amt = c_itcont.groupby('STATE').size().sort_values(ascending=False).head(10)
st_amt.plot(kind='bar')
<AxesSubplot:xlabel='STATE'>

5.3 热门候选人拜登在各州的获得的捐赠占比

# 从所有数据中取出支持拜登的数据
biden = c_itcont[c_itcont['CAND_NAME']=='BIDEN, JOSEPH R JR']
# 统计各州对拜登的捐款总数
biden_state = biden.groupby('STATE').sum().sort_values("TRANSACTION_AMT", ascending=False).head(10)
# 饼图可视化各州捐款数据占比
biden_state.plot.pie(figsize=(10, 10),autopct='%0.2f%%',subplots=True)
array([<AxesSubplot:ylabel='TRANSACTION_AMT'>], dtype=object)

5.3 总捐最多的候选人捐赠者词云图

通过数据分析中获得捐赠总额前三的候选人统计中可以看出拜登在2020.7.22-2020.8.20这期间获得捐赠的总额是最多的,所以我们以拜登为原模型,制作词云图。

首先下载图片模型,这里提供的是已经处理好的图片,有兴趣的选手可以自己写代码进行图片处理
# 处理结果:需要将人图像和背景颜色分离,并纯色填充,词云才会只显示在人图像区域
# 拜登原图:https://img.alicdn.com/tfs/TB1pUcwmZVl614jSZKPXXaGjpXa-689-390.jpg
# 拜登处理后图片:https://img.alicdn.com/tfs/TB10Jx4pBBh1e4jSZFhXXcC9VXa-689-390.jpg
!wget https://img.alicdn.com/tfs/TB10Jx4pBBh1e4jSZFhXXcC9VXa-689-390.jpg
# 由于下载图片文件名过长,我们对文件名进行重命名
import os
os.rename('TB10Jx4pBBh1e4jSZFhXXcC9VXa-689-390.jpg', 'biden.jpg')
# 将所有捐赠者姓名连接成一个字符串
data = ' '.join(biden["NAME"].tolist())
# 读取图片文件
bg = plt.imread("biden.jpg")
# 生成
wc = WordCloud(# FFFAE3background_color="white",  # 设置背景为白色,默认为黑色width=890,  # 设置图片的宽度height=600,  # 设置图片的高度mask=bg,    # 画布margin=10,  # 设置图片的边缘max_font_size=100,  # 显示的最大的字体大小random_state=20,  # 为每个单词返回一个PIL颜色
).generate_from_text(data)
# 图片背景
bg_color = ImageColorGenerator(bg)
# 开始画图
plt.imshow(wc.recolor(color_func=bg_color))
# 为云图去掉坐标轴
plt.axis("off")
# 画云图,显示
# 保存云图
wc.to_file("biden_wordcloud.png")

<wordcloud.wordcloud.WordCloud at 0x7f64fca05400>

三、学习问题与解答

学习问题出现还是蛮多的,主要是出现的方法的机理,参数的作用不清楚。

四、学习思考与总结

本次学习的内容如果要完全理解对我这种几天前才开始学Python的人来说还是挺难的,里面有涉及到安装包、引入库的操作。引入的那些如Pandas、wordcloud包里面的方法不熟悉,学习起来比较吃力。这些例程做下记录,以后会好好学习弄懂。

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

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

相关文章

JMETER从JSON响应中提取数据

如果你在这里&#xff0c;可能是因为你需要使用JMeter从Json响应中提取变量。 好消息&#xff01;您正在掌握掌握JMeter Json Extractor的权威指南。作为Rest API测试指南的补充&#xff0c;您将学习掌握Json Path Expressions 所需的一切。 我们走吧&#xff01;并且不要惊慌&…

centos7安装oracle12c 二

环境&#xff1a;CentOS7VMware12&#xff0c;分配资源&#xff1a;CPU&#xff1a;2颗&#xff0c;内存&#xff1a;4GB&#xff0c;硬盘空间&#xff1a;30GB Oracle 12C企业版64位 下载地址&#xff1a;http://www.oracle.com/technetwork/database/enterprise-edition/down…

阿里云天池 Python训练营Task5:Python训练营测试 学习笔记

一、学习知识点概要 本次是Python训练营的测试&#xff0c;在45分钟内完成25题&#xff0c;满分100分及格80分。题目主要考察Task1到Task3里面的Python基础知识。在我随到的25道题里&#xff0c;知识点有&#xff1a; 变量&#xff08;包括数据类型和容器类型&#xff09;运算…

centos7安装oracle12c 三

场景描述&#xff1a;我在自己电脑的虚拟机上linux环境下安装oracle11g数据库。 Linux版本为&#xff1a;CentOS release 6.8 (Final)&#xff0c;Oracle版本为&#xff1a;linux.x64_11gR2 问题描述&#xff1a;在oracle安装到Prerequisite Checks这一步的时候&#xff0c;出现…

mysql删除一条记录

mysql如何删除一条记录delete from 表名 where 条件实例&#xff1a;use db1delete from tb1 where id 1; 转载于:https://www.cnblogs.com/effortsing/p/10393229.html

HBase体系结构

HBase HBase是Apache Hadoop的数据库&#xff0c;基于HDFS文件系统 random,realtime read/write access to Big Data 开源、分布式、可扩展、面向列 larger tables--billions of rows X millions of columns 不支持表链接操作 不支持事务处理 HBase存储的数据从逻辑上来…

《属性数据分析引论》 部分课后习题R语言实践(第三章、第四章)

目录 前言 第三章 广义线性模型 习题3.18 a小题 b小题 c小题 d小题 习题3.19 a小题 b小题 c小题 第四章 Logistic回归 习题4.1 a小题 b小题 c小题 d小题 e小题 习题4.2 a小题 b小题 c小题 d小题 小结 前言 习题选自高等教育出版社译制&#xff0c;Alan A…

Linux下SVN搭建

在Linux系统中搭建svn服务所需要用到的软件叫做subversion&#xff0c;可以通过yum来进行安装&#xff0c;如图 安装好软件后第一件事就是创建一个仓库目录 [rootserver1 ~]# mkdir /svn 使用svn自带命令建立仓库 [rootserver1 ~]# svnadmin create /svn 进入该仓库&#xff0c…

HBase模式设计

HBase的使用是为了解决或优化某一问题 恰当的设计模式可以使其具有HBase本身所不具有的功能&#xff0c;并且使其执行效率得到成百上千倍的提高 在进行HBase数据库模式设计的时候&#xff0c;不当的设置可能对系统的性能产生不良的影响 需要注意&#xff1a; 1、列族的数量及…

C++STL特殊容器priority_queue

在了解priority_queue&#xff08;优先队列&#xff09;前&#xff0c;可以先去瞅瞅queue&#xff0c;下面是传送门啦>——< 传送门 priority_queue的基本性能 class priority_queue<>实现出一个queue&#xff0c;只不过其中的元素依照优先级被读取。priority_queu…

可用于多元正态的参数估计 及 均值向量和协差阵检验 的R语言函数总结

一、多元正态的参数估计 1.1 样本均值 在R语言中&#xff0c;均值通常用函数mean()得到&#xff0c;但是mean()只能计算一维变量的样本均值&#xff0c;在面对多元随机变量的样本时&#xff0c;假设我们以数据框的形式保存样本&#xff0c;我们有以下方法可以得到样本均值&…

30秒的PHP代码片段-MATH

本文来自GitHub开源项目 点我跳转 30秒的PHP代码片段 精选的有用PHP片段集合&#xff0c;您可以在30秒或更短的时间内理解这些片段。数学函数 average 返回两个或多个数字的平均值。 function average(...$items) { $count count($items); return $count 0 ? 0 : array_sum(…

Hive简介

Hive最初是应Facebook每天产生的海量新兴社会网络数据进行管理和机器学习的需求而产生和发展的 是建立在Hadoop上的数据仓库基础架构 作为Hadoop的一个数据仓库工具&#xff0c;Hive可以将结构化的数据文件映射为一张数据库表&#xff0c;并提供简单的SQL查询功能 Hive作为数…

可用于 线性判别、聚类分析 的R语言函数总结

一、判别分析 判别分析是一种分类技术&#xff0c;其通过一个已知类别的“训练样本”来建立判别准则&#xff0c;并通过预测变量来为未知类别的数据进行分类。根据判别的模型分为线性判别和非线性判别&#xff0c;线性判别中根据判别准则又分为Fisher判别&#xff0c;Bayes判别…

Linux 环境下搭建 Jenkins(Hudson)平台

安装jenkins&#xff1a;安装 jenkins 有两种方式&#xff1a;安装方式一&#xff1a; [java] view plaincopysudo java -jar jenkins.war –httpPort18080 –ajp13Port18009 但是很多时候我们是使用SSH方式到目标机器上的&#xff0c;放我们关闭SSH连接时&#xff0c;这个命…

Android APK 打包过程 MD

Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目录 目录APK 的打包流程整体流程资源的编译和打包资源ID资源索引概况具体打包过程aapt阶段aidl阶段Java Compiler阶段dex阶段a…

可用于 主成分分析、R型因子分析、简单相应分析 的R语言函数总结

一、主成分分析 主成分分析是多元统计分析的一种常用的降维方法&#xff0c;它以尽量少的信息损失&#xff0c;最大程度将变量个数减少&#xff0c;且彼此间互不相关。提取出来的新变量成为主成分&#xff0c;主成分是原始变量的线性组合。 1.1 KMO检验和Bartlett球形检验 在…

[国家集训队]墨墨的等式

Description 墨墨突然对等式很感兴趣&#xff0c;他正在研究a1x1a2y2…anxnB存在非负整数解的条件&#xff0c;他要求你编写一个程序&#xff0c;给定N、{an}、以及B的取值范围&#xff0c;求出有多少B可以使等式存在非负整数解。 Input 输入的第一行包含3个正整数&#xff0c;…

Storm简介

Storm是实时流式数据处理框架&#xff0c;支持多种编程语言 应用案例&#xff1a; realtime analytics online machine learning continuous computation distributed RPC ETL 性能&#xff1a;a million tuples per second per node 可扩展、高容错 结合消息队列和数据库…

持续集成之Jenkins安装部署

安装JDKJenkins是Java编写的&#xff0c;所以需要先安装JDK&#xff0c;这里采用yum安装&#xff0c;如果对版本有需求&#xff0c;可以直接在Oracle官网下载JDK。 [rootlinux-node1 ~]# yum install -y java-1.8.0 安装Jekins [rootlinux-node1 ~]# cd /etc/yum.repos.d/ […