scala从textfile创建具有多个值条目的键值对

时间:2016-10-02 17:29:02

标签: scala apache-spark

如何使用以下格式创建键值对?

textfile中的示例输入:

  

X:a b c

     

Y:f g

我希望输出为键值对并存储在RDD

(X,a)
(X,b)
(X,c)
(Y,f)
(Y,g)

编辑:

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

1 个答案:

答案 0 :(得分:1)

首先使用\\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)) }}

Find: ^.*<space>
Repl: <blank>