scala:如何关联文件中的数据?

scala: how to associate data from a file?

我从 scala 开始,我试图为我的文件的每一行关联值。 假设我有这个简单的文本文件作为输入:

key1,data1#data2  
key2,data3#data4#data5

我希望我的输出是:

key1,data1
key1,data2
key2,data3
key2,data4
key2,data5

我尝试过类似的方法,但它不起作用:

Source.fromFile("test").getLines.map { line =>
val data = line.split(",")
for(v <- data(1).split("#"))
{
(data(0),v)
}
}.foreach(println)

有什么提示吗?

你很接近:

def parseLine(str: String) = { 
    val Array(key, values) = str.split(",")
    for(value <- values.split("#")) yield key -> value
}

val lines = List(
    "key1,data1#data2",  
    "key2,data3#data4#data5"
)

lines.flatMap(parseLine).foreach(println)

(key1,data1)
(key1,data2)
(key2,data3)
(key2,data4)
(key2,data5)

您的具体问题在

for(v <- data(1).split("#")) {
  (data(0),v)
}

您已经构建了结果 (data(0),v) 元组,但没有在任何地方返回它(例如使用 yield)