2016-02-24 2 views
0
лестницу

У меня есть файл CSV, который является «полуструктурированный»Maniputale CSV с искрой

canal,username,email,age 
facebook,pepe22,[email protected],24 
twitter,foo-24,[email protected],33 
facebook,caty24,,22 

предположит, что я хочу, чтобы первый столбец второй и третий столбец в org.apache.spark.rdd RDD .RDD [(String, String, String)]

Я действительно новый, им с помощью искры 1.4.1, мой код достигают здесь

val rdd = sc.textFile("/user/ergorenova/socialmedia/allus/test").map(_.split(",")) 

Может кто-нибудь мне помочь?

Я действительно ценю это

+0

Возможный дубликат функции [Scala map over RDD] (http://stackoverflow.com/questions/24565351/scala-map-function-over-rdd) –

ответ

1
val rdd = sc.textFile("/user/ergorenova/socialmedia/allus/test") 
      .map(_.split(",",-1) match { 

       case Array(canal, username, email) => (canal, username, email) 

       case Array(canal, username, email, age) => (canal, username, email) 
      }) 

Вы получите кортеж, сделанный из первого, второго и третьего столбца.

+0

Большое спасибо, но теперь у меня есть другая проблема, если у меня нет последнего элемента, например без возраста, код не работает, как я могу это решить? –

+0

Измененный код для обработки этого случая тоже –

+0

ошибка во второй строке «не найден: значение возраста», другой способ? спасибо за ответ –