spark和scala中的语法

时间:2017-01-01 11:52:45

标签: scala apache-spark

我是火花和斯卡拉的业余爱好者,谁能告诉我这个语法有什么作用? :

val encoded_props = props.map( _.split(" ")).map(t => Map((t(1),t(0).toLong))).reduce((a1,a2)=>a1++a2)

由于

1 个答案:

答案 0 :(得分:2)

请参阅,

Spark使用Scala的一些功能原则,如地图,缩减等等......

让我展示它是如何运作的。

假设您有一个文件:

123 A
456 B

此文件将加载到变量props

当您在map( _.split(" "))中为地图中的每一行映射时,您将在空间caractere中分割数据。它会在你的RDD中创建一个像这样的字符串(String,String):

(("123", "A"), ("456", "B"))

其他地图map(t => Map((t(1),t(0).toLong)))表示每个元组中的每个元素,您将选择0元素和1元素来创建Map objec。并且您将索引0字符串转换为Long。这是输出

Map("A" -> 123)
Map("B" -> 456)

Map是scala中的一个集合,您可以使用++将项目附加到该集合,因此每个相同的键都会使用reduce,它会将数据附加到Map。像所有A一样,A会像这样相互追加:

Map("A" -> 123, "A" -> 669)

我建议你在文档中检查这个过程的每个元素。