您的位置:首页 > 前瞻分析 > 篮球新闻 > NBA 历年总冠军数据处理与球队冠军数量统计

NBA 历年总冠军数据处理与球队冠军数量统计

发布时间 浏览量21点赞数量评论数量返回目录篮球新闻

本案例需要处理的文件是nba.csv。这份档案记录了历年NBA总冠军的详细情况。文件的字段从左到右分别是比赛年份、具体日期、冠军、得分、亚军和当年的MVP(联盟MVP是Most的缩写,即最有价值球员),每个字段都是分开的半角逗号“,”,如图3-1所示。

图3-1NBA原始文件数据

本课程的设计需要对这个数据集进行如下处理:

(1)数据清洗;

(2)统计各队获得冠军的数量;并分别存储东西部球队的统计结果。

任务1:实施过程

(一)要求

NBA的历史比较悠久。 1947年至2019年期间,有些球队已不复存在(例如:芝加哥雄鹿队),有些球队的名称发生了变化(例如:明尼阿波利斯湖人队,现名为洛杉矶湖人队);因此,对于已经不存在的团队,继续保存他们的名字而不做任何修改;但已更改名称的队伍需要映射到当前队伍的名称;

另外,由于需要对球队的东西赛区进行统计,因此需要在球队中添加东西赛区标识。

(二)解题思路

添加团队的新旧名称之间的映射。读取每行数据时,如果遇到旧名称,则用新名称替换;

添加东西部球队的映射。读取数据时,分析冠军球队所在赛区,然后添加标识(东部球队用“E”标识,西部球队用“W”标识)

需要说明的是,美国NBA联盟从1970年开始划分东西部,因此需要判断年份。

(3)核心代码分析

在自定义类中,我们首先创建了两个java.util.Map对象来封装新老球队、东西赛区球队之间的映射。核心代码如图:

图3-2 封装了新老球队、东西赛区的映射对象

映射数据的初始化最好放在类的setup()方法中。该类有四个方法:

无效设置( )

无效映射(KEYIN 键,值,)

空白 ( )

无效运行()

setup()方法一般用于加载一些初始化工作,如关联数据的初始化、数据库链接的建立等; ()方法是收尾工作,比如执行map()后关闭文件或者键值分配等; map() ) 函数描述了每行数据的处理逻辑; run()方法定义了上述方法的执行流程,如图3-3所示。通过这个方法我们可以看到 setup() 和 () 在对象的生命周期中只调用一次,而 map() 方法只要有新的键和值就会被调用。

图3-3 类中的run()方法

setup()方法中初始化映射数据的核心代码如图3-4所示。

图3-4 映射数据初始化核心代码

最终将东、西分区列表添加到对象中,如图3-5所示。

图3-5 为对象添加分区

在map方法中nba东部球队,只需按照上述要求进行逻辑映射即可。 Map的最终输出结果就是类型。文本部分被替换为新名称,并附加标识东部和西部地区的数据。核心代码如图3-6所示。

图3-6 map方法核心代码

main方法需要定义作业启动的相关参数。数据清洗部分实际上只需要输出map阶段的结果,不需要部分汇总处理。因此nba东部球队,不需要配置,但即使不写类,框架也会添加一个默认的类是 org.... 可以使用 Job 对象的方法,并将其参数设置为 0,以避免不必要的性能浪费。核心代码如图3-7所示。

图3-7 main方法核心代码

任务2:统计每支球队获得的冠军数量。统计结果存储在三个文件中:东区、西区和未分区。

任务2:解决问题的思路

统计每支球队获得的冠军数量,基本思路和之前程序的逻辑是一致的。在map阶段,解析冠军球队的名字作为key,用一个值为1的对象作为value,然后传递给part,做加法操作即可。

另外,统计结果需要按照东、西地区分档存储,相对复杂。从给定和清理的数据集可以看出nba东部球队,应该分为三个文件存储:东区、西区和未分区。因此,需要根据每行数据需要进入哪个分区的分区标识进行定制和判断。

指定数量是通过job.(3)设定的3个。

任务2:核心部分代码分析

Map部分主要用于解析冠军球队名称,解析分区标识符,并根据分区标识符设置key值,而value部分则直接取值1。核心代码如图3- 9.

图3-9 地图核心代码

定制时,需要根据key的值来确定每行数据进入哪个分区。核心代码如图3-10所示。

图3-10 核心代码

将这些部分合并来计算每支球队赢得的冠军数量。核心代码如图3-11所示。

图3-核心代码

main方法中,除了基本作业提交所需的参数外,这里还指定了。由于计算数量的逻辑一致,所以直接使用该类。另外,还需要指定自定义分区类,并将数量设置为3。核心代码如图3-12所示。

图3-12 Main方法核心代码

最终计算结果共有三个文件(除files外),文件列表如图3-13所示。

图3-13 结果文件列表

三个文件的内容如下:

(1)part-r-00000的内容如图3-14所示。

图3--r-00000内容

(2)part-r-00001的内容如图3-15所示。

图3--r-00001内容

(3)part-r-00002的内容如图3-16所示。

图3--r-00002内容

任务3:统计每支球队获得的冠军数量。统计结果定制,实现多文件存储。

接下来我们对上面的案例进行修改,将东区、西区和无分区的数据以自定义的方式保存在三个文件中。

(一)解题思路

是框架用于数据输出的抽象父类。该类是继承的并用于定义文件的输出。在该阶段,继承了默认的输出类。我们可以通过继承来实现自己的输出逻辑。

(2)核心部分代码分析

定制非常简单,只需在其方法中返回一个对象即可。核心代码如图3-17所示。

图3-17 核心代码

我们需要继承来实现我们自己的输出逻辑。本例定义了一个类,在其构造方法中创建了三个对象,用于输出不同类型的数据。在其核心的write方法中,根据分区表示指定不同分区数据的输出,并在最终的close方法中用于关闭三者。核心代码如图3-18所示。

图3-18 核心代码

需要注意的是,main方法中,由于使用了定制,所以不再需要定制。此外,还需要指定类。核心代码如图3-19所示。

图3-19 main方法核心代码

最终的输出结果与前面的例子基本相同,只不过本例的代码中直接定义了文件名。最终生成的结果文件列表如图3-20所示。

图3-20 结果文件列表

任务4:仅处理东西向分区后的数据

(一)解题思路

在前面的两个例子中,已经实现了数据的多文件存储。不过,由于本案例的要求是只将东西分区的数据存储在文件中,所以单独保存1970年之前的数据有些多余。去除这些多余的数据很简单,只需在map方法中过滤即可示例2和示例3,但更好的方法是自定义类,在数据进入map方法之前将其移除。

是数据读取框架的抽象父类。它是继承的,主要用于文件读取。框架默认使用继承,我们可以继承来实现自己的输出逻辑。

(2)核心部分代码分析

创建类继承并实现该方法。该方法返回一个自定义对象。核心代码如图3-21所示。

图3-21 核心代码

为了实现自定义,需要重写以下方法:

无效(分割,)

()

()

文本()

漂浮()

无效关闭()

其中,该方法主要用于初始化数据读取所需的一些参数,如起始位置、结束位置、读取流对象等;该方法会在数据读入map方法之前被调用(见图3-3),其作用是为键和值赋值; and方法用于获取分配的键和值,并将其传递给map方法;用于计算已读取了多少数据; close 用于关闭读取流。

定义用于读操作的变量。核心代码如图3-22所示。

图3-22 定义读写操作变量

方法中初始化上述变量,核心代码如图3-23所示。

图3-23 方法核心代码

在该方法中,进行过滤。 1970年之前的数据不会传递到map方法中。核心代码如图3-24所示。

图3-24 方法核心代码

实现及方法,核心代码如图3-25所示。

图3-25及方法核心代码

将上述代码添加到示例2或示例3中,然后在main方法中设置类。核心代码如图3-26所示。

图3-26 Main方法核心代码

运行后的最终输出中,分区之前的数据将不再存在。

除特别注明外,本站所有内容均为JRS直播网整理排版,转载请注明出处:NBA 历年总冠军数据处理与球队冠军数量统计https://www.nbaigema.com/news/lanqiu/3707.html
本文标签:nba东部球队

相关NBA资讯

  • 2023 NBA全明星赛即将来临,手把手教你如何优雅地装X,展现你的篮球知识

  • JRS直播网 181 0 181 足球新闻
  • 2023 NBA全明星赛即将来临,手把手教你如何优雅地装X,展现你的篮球知识近来就有知乎网友提问:看全明星赛,如何显得特别有经验?当然,大咖云集的全明星赛怎能少了装备的支持呢?当你与他们一同看球,请牢记自己的身份:真球迷、懂球帝!作为装X界的最后一个招式,本招式小编用了一个文艺的不能更文艺的名字——“黄雀在后”。
  • 2014年NBA西部狂野赛季回顾:小牛力压太阳,诺维茨基满血复出

  • JRS直播网 181 0 181 足球新闻
  • 2014年NBA西部狂野赛季回顾:小牛力压太阳,诺维茨基满血复出那年东部只有步行者和热火两只球队超过了50胜,而西部有七只球队胜场超过50场。马刺常规赛62胜,总决赛复仇热火西部决赛马刺再战雷霆,前两场马刺均完胜对手,G3伊巴卡打封闭复出,雷霆连扳两场,但这已经是雷霆的极限了,G5马刺主场大胜28分,G6马刺在客场送走
  • 时隔一年再相逢:伦纳德关键时刻罚球失误,马刺与热火的激烈对决

  • JRS直播网 181 0 181 足球新闻
  • 时隔一年再相逢:伦纳德关键时刻罚球失误,马刺与热火的激烈对决这一回,热火是严阵以待的卫冕冠军,而圣安东尼奥马刺,则成为了王座前的挑战者。从季后赛成绩和总冠军来看,马刺和热火的成就并驾齐驱,堪称10年最强大的球队。
  • 篮球历史中的三连冠挑战:湖人、勇士与热火的荣耀与遗憾

  • JRS直播网 181 0 181 足球新闻
  • 篮球历史中的三连冠挑战:湖人、勇士与热火的荣耀与遗憾大关的球队,马刺队相较于热火队,更注重团队作战。他们深知詹姆斯是热火队进攻的核心与灵魂,拥有改变对手防守格局的强大能力。于是,马刺队坚决地采取了限制詹姆斯传球的策略,甚至不惜放空热火队的三分球。当韦德与波什这两位当家球星无法在进攻端给予詹姆斯足够的支持时,球队的失利似
  • NBA历史总进球榜与总得分榜前十名球员详细解析

  • JRS直播网 181 0 181 足球新闻
  • NBA历史总进球榜与总得分榜前十名球员详细解析NBA历史总进球榜NBA历史总得分榜前十NBA各项数据历史之最,分别是哪些球员创造的?进球数最多的还是贾巴尔,贾巴尔是NBA历史上总数据纪录最多的球员,至少目前为止他还保持着5项数据第一NBA史上谁的进球数排名第二?
  • 2022年NBA常规赛开赛日期及重要时间节点详解

  • JRS直播网 181 0 181 足球新闻
  • 2022年NBA常规赛开赛日期及重要时间节点详解nba常规赛几月份开打?NBA季前赛已经开打一段时间了,但更多人关注的是常规赛的开始时间,想知道nba常规赛几月份开打,下面小编为大家带来了nba常规赛开赛日期2022,来看看吧。nba常规赛几月份开打nba常规赛10月开打。12月28日:发展联盟常规赛开始(每支队32场
  • 崔永熙NBA首秀引爆篮网胜利,中国球员在NBA的奋斗历程

  • JRS直播网 181 0 181 足球新闻
  • 崔永熙NBA首秀引爆篮网胜利,中国球员在NBA的奋斗历程2001年4月,在八一队夺冠后,王治郅选择登陆NBA,成为第一名登陆NBA的中国球员、乃至亚洲球员。2008年他登陆NBA,生涯第一年也是唯一一年,就跟随湖人夺得中国球员在NBA的第二枚总冠军戒指。
  • 揭秘CBA江西籍球员刘禹涛:江西篮球的低调力量与未来潜力

  • JRS直播网 181 0 181 足球新闻
  • 揭秘CBA江西籍球员刘禹涛:江西篮球的低调力量与未来潜力同样江西籍球员在南方省份中也是相对比较少,不过一直以来在cba都是保持一名江西籍球员,未来也有不少来自江西的潜力新星。那么现在来细数一下来自江西的篮球精英。余晨可以说是江西最出名的篮球运动员,尽管已经退役了,但是他在江西篮球的地位相当高,也曾有“小姚明”之称。
  • 2014-2015赛季NBA季后赛完整对阵表及最终冠军揭晓

  • JRS直播网 181 0 181 足球新闻
  • 2014-2015赛季NBA季后赛完整对阵表及最终冠军揭晓nba季后赛(2014-2015赛季)对阵表如下:2014-15赛季,在2014年12月17日勇士负灰熊的比赛中,勇士队(21-3)长达16场的连胜结束。这是勇士队在1974-75赛季以来的第一个冠军,也是勇士所有球员个人职业生涯的第一个总冠军。
  • CBA历史十大退役球星盘点:刘玉栋、王治郅、朱芳雨等传奇人物回顾

  • JRS直播网 181 0 181 足球新闻
  • CBA历史十大退役球星盘点:刘玉栋、王治郅、朱芳雨等传奇人物回顾CBA历史十大国内球星怎么排第3名、朱芳雨朱芳雨的名字出现在这里是毋庸置疑的,职业生涯得到10650分(历史第一)、2759板(历史第11)、1500个三分(历史第一)、1030次抢断(历史第三),这样的数据,朱芳雨成为现役第一、历史前三名的球员,绝对是没

热门标签

友情链接: 腾讯体育 jrkan直播 极速体育 JRS直播网 直播吧 cba直播 JRS直播 体育直播 JRS直播nba(无插件)直播