进口;“干和图”;将数据键入scala并存储在元组中
我得到的数据格式类似于txt文件中的茎叶图。它有一个用户id,然后是相关联的朋友列表,由一个选项卡分隔。e、 g进口;“干和图”;将数据键入scala并存储在元组中,scala,mapreduce,tuples,Scala,Mapreduce,Tuples,我得到的数据格式类似于txt文件中的茎叶图。它有一个用户id,然后是相关联的朋友列表,由一个选项卡分隔。e、 g -0 tab 3,4,2,5,6 -1 tab 5,2,8 -2 tab 0,1,7,8,5 在scala中,我需要这样一种方式:对于每个值,我最终得到一个(userid,friend)的元组。因此,对于0,我需要(0,3),(0,4),(0,2),(0,5),和(0,6)。这是针对map reduce类型的交易。到目前为止,我所拥有的一切都不起作用,甚至可能还不太接近: de
-0 tab 3,4,2,5,6
-1 tab 5,2,8
-2 tab 0,1,7,8,5
在scala中,我需要这样一种方式:对于每个值,我最终得到一个(userid,friend)
的元组。因此,对于0
,我需要(0,3)
,(0,4)
,(0,2)
,(0,5)
,和(0,6)
。这是针对map reduce类型的交易。到目前为止,我所拥有的一切都不起作用,甚至可能还不太接近:
def parseLine(line:String) = {
val fields = line.split("\t")
val userID = fields(0).toInt
val userlist = List(userID)
val friends = fields(1).split(",")
for (x <- userlist){
val user = x
for (y <- friends){
val friendID = y
(userID, friendID)
}
}
}
def parseLine(行:字符串)={
val字段=行分割(“\t”)
val userID=字段(0).toInt
val userlist=List(userID)
val friends=字段(1)。拆分(“,”)
对于(x使用a表示理解,而不是常规的for循环
def parseLine(line: String) = {
val fields = line.split("\t")
val userID = fields(0).toInt
val friends = fields(1).split(",")
for (friendID <- friends) yield (userID, friendID)
} // Array[Tuple[Int, String]]
val result = parseLine("0\t3,4,2,5,6")
// Array((0,3), (0,4), (0,2), (0,5), (0,6))
def parseLine(行:字符串)={
val字段=行分割(“\t”)
val userID=字段(0).toInt
val friends=字段(1)。拆分(“,”)
为(friendID)
def parseLine(line: String) = {
val fields = line.split("\t")
val userID = fields(0).toInt
val friends = fields(1).split(",")
for (friendID <- friends) yield (userID, friendID)
} // Array[Tuple[Int, String]]
val result = parseLine("0\t3,4,2,5,6")
// Array((0,3), (0,4), (0,2), (0,5), (0,6))