2016-01-24 3 views
0

Я хочу использовать элемент в элементе RDD в качестве ключа, как я могу это сделать это мои данные:Как создать пар ключ-значение из Textfile

2 1 
4 1 
1 2 
6 3 
7 3 
7 6 
6 7 
3 7 

Я хочу создать ключ/пары значений, так что ключ является элементом, а также значением является следующий элемент;

Я написал этот код:

def main(args: Array[String]) 
{ 
    System.setProperty("hadoop.home.dir","C:\\spark-1.5.1-bin-hadoop2.6\\winutil") 
    val conf = new SparkConf().setAppName("test").setMaster("local[4]") 
    val sc = new SparkContext(conf) 

    val lines = sc.textFile("followers.txt") 
    .flatMap{x => (x.indexOfSlice(x1),x.indexOfSlice(x2))} 

} 

, но это не так, и он не будет определять индекс элементов; каждые два номер линия

ответ

2

Может быть, я недоразумение ваш вопрос, но если вы просто хотите разделить ваши данные на пары ключ-значение, вам просто нужно сделать, это:

val lines = sc.textFile("followers.txt").map(s => { 
    val substrings = s.split(" ") 
    (substrings(0), substrings(1)) 
}) 

Значит ли это решает вашу проблему?

+0

Большое спасибо, но когда я хочу использовать строки в качестве RDD для работы groupByKey, я получу ошибку –

+0

Я узнал, спасибо, я worte это: val aggrigateNeighbors = lines.groupByKey(). Collect(). foreach (println), извините, я новичок, но я делаю проект в искру –

Смежные вопросы