【发布时间】:2016-06-09 11:12:30
【问题描述】:
您好,我正在学习 Spark 和 Scala,我有一个场景需要编写 Sparkscala 代码
输入文件
Name attr1 attr2 attr3
John Y N N
Smith N Y N
预期输出
John attr1 Y
John attr2 N
John attr3 N
Smith attr1 N
...
...
我知道如何在 Map-Reduce 中做到这一点
对于每一行,分别获取名称并遍历 attr 值并将输出作为(Name, attrX Y/N) 发送,但在 scala 和 Spark 中有点混乱,谁能帮助我?
【问题讨论】:
-
在 Spark 之外,阅读第一行,提取 attrN 的列表,现在使用 Spark,将其设置为广播变量以使其可供工作人员访问。从文件的其余部分制作一个 RDD。 flatMap 在 RDD 上生成给定行的条目。你就完成了。
-
另外,我认为你的例子是错误的。 "Smith attr2 N" 应该是 "Smith attr1 N" 或 Smith attr2 Y"
标签: scala hadoop apache-spark bigdata