Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进口;“干和图”;将数据键入scala并存储在元组中_Scala_Mapreduce_Tuples - Fatal编程技术网

进口;“干和图”;将数据键入scala并存储在元组中

进口;“干和图”;将数据键入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

我得到的数据格式类似于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类型的交易。到目前为止,我所拥有的一切都不起作用,甚至可能还不太接近:

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))