Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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从包含多个值项的textfile创建键值对_Scala_Apache Spark - Fatal编程技术网

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