scala从包含多个值项的textfile创建键值对
如何以以下格式创建键值对scala从包含多个值项的textfile创建键值对,scala,apache-spark,Scala,Apache Spark,如何以以下格式创建键值对 文本文件中的示例输入: X:ABC Y:f-g 我希望输出是键值对,并存储在RDD (X,a) (X,b) (X,c) (Y,f) (Y,g) 编辑: 首先使用:拆分,然后使用\\s+ val textFile = sc.textFile("hdfs://...") textFile.flatMap { line => { val Array(label, rest) = line split ":" val items = rest.
文本文件中的示例输入:
X:ABC
Y:f-g
我希望输出是键值对,并存储在RDD
(X,a)
(X,b)
(X,c)
(Y,f)
(Y,g)
编辑:
首先使用:
拆分,然后使用\\s+
val textFile = sc.textFile("hdfs://...")
textFile.flatMap { line => {
val Array(label, rest) = line split ":"
val items = rest.trim.split("\\s+")
items.map(item => (label.trim -> item))
}}
到目前为止,您尝试了什么?val sprk=new SparkContent(conf)in=sprk.textFile(“sample_input.txt”)val tuples=in.maps{s=>val parts=s.split(\\s+”)(parts(0),parts(1))}。distinct示例输入文件中没有“,”且没有行号。我对问题进行了编辑,使之更清楚。
val textFile = sc.textFile("hdfs://...")
textFile.flatMap { line => {
val Array(label, rest) = line split ":"
val items = rest.trim.split("\\s+")
items.map(item => (label.trim -> item))
}}