【发布时间】:2019-06-25 18:09:07
【问题描述】:
我正在使用 scala 在 eclipse IDE 上开发一个 spark 项目
我想要一些关于这个 MapReduce 问题的帮助
地图功能:
- 删除“运动”和“交易所”列
- 删除任何具有“NULL”的行
- 添加新的列持续时间周期。这必须根据学生的周期取值:执照(3 年)、硕士(3 年)、Ingeniorat(5 年)和博士学位(3 年)
减速机:
- 根据年级、周期和专业将所有学生加起来。
我的输入是
matricule,dateins,cycle,specialite,bourse,sport
0000000001,1999-11-22,Master,IC,Non,Non
0000000002,2014-02-01,Null,IC,Null,Oui
0000000003,2006-09-07,Null,Null,Oui,Oui
0000000004,2008-12-11,大师,IC,Oui,Oui
0000000005,2006-06-07,Master,SI,Non,Oui
0000000006,1996-11-16,Ingeniorat,SI,Null,Null
等等。
这是我开始的代码。我已经删除了列'sport''bourse'并提取了年份
val sc = new SparkContext(conf)
val x = sc.textFile("/home/amel/one")
val re = x.map(_.split(",")).foreach(r => println(r(1).dropRight(6), r(2),r(3)))
这是我得到的结果
(2000,许可证,Isil)
(2001,硕士,SSI)
我想要的结果是:
年周期持续时间专业 Nbr-学生
(2000,执照,3年,Isil,400)
(2001,硕士,3年,SSI,120)
// 我希望 'Nbr-students' 列是根据他们的周期和专业每年的学生人数。
【问题讨论】:
-
我不认为这是一个与 MapReduce 相关的问题(您以前可能使用过 MR,但这个问题本身不一定专门针对 MR),所以我已经从您的问题,因为我们没有使用 MapReduce 来解决这个问题,并且描述中没有包含 MapReduce 代码。
-
我使用了 Map 函数来拆分我的文本文件。你是什么意思这不需要mapreduce功能?我告诉你我创建了一个类似的项目。我只是无法清除任何包含 NULLS 的行
-
您已使用 Apache-Spark 中的 map 函数来拆分您的文本文件。您在这里没有使用 MapReduce 代码,因为 MapReduce 是一个使用 Mappers 和 Reducers 构建的框架。您正在将数据从一种形式映射到另一种形式。
-
哦,现在我明白了。那么有没有办法解决这个问题?
-
是的,我目前正在研究解决方案 :)
标签: scala apache-spark mapreduce