2017-01-24 2 views
0

У меня есть текстовые данные, как показано нижеСпарк RDD вопросы картографирования

 
no1  1|3|4 
no2  4|5|6 

и я хочу, чтобы преобразовать вышеуказанные данные, как показано ниже с помощью искрового RDD и язык SCALA.

 
no1  1 
no1  3 
no1  4 
no2  4 
no2  5 
no2  6 

Я очень новичок в Spark и Scala. И я не могу найти ни одного примера, который бы делал это.

ответ

4

Я рекомендую вам прочитать в файле как фрейм данных, в API которого будет больше внимания в будущей искровой версии, чем в RDD API. И с кадра данных, задача вы спрашиваете довольно просто с split и explode функции:

val df = Seq(("no1", "1|3|4"), ("no2", "4|5|6")).toDF("A", "B") 
// df: org.apache.spark.sql.DataFrame = [A: string, B: string] 

df.show 
+---+-----+ 
| A| B| 
+---+-----+ 
|no1|1|3|4| 
|no2|4|5|6| 
+---+-----+ 


df.withColumn("B", explode(split($"B", "\\|"))).show 
+---+---+ 
| A| B| 
+---+---+ 
|no1| 1| 
|no1| 3| 
|no1| 4| 
|no2| 4| 
|no2| 5| 
|no2| 6| 
+---+---+ 
+0

Спасибо за Ваш комментарий. Если у меня есть файл txt данных и вы хотите его ввести (а не вручную), как получить команду для введенного пользователем файла? – sclee1

+0

@ sclee1, изучая Spark. Я не скупился, просто вы не можете рассчитывать написать свое приложение только из последовательности вопросов, чтобы [SO]. Любое учебное пособие по искры будет охватывать чтение из файла. –

+0

В зависимости от вашей искровой версии чтение из файла будет отличаться. Для искры 2+ я нахожу 'spark.read.option (« header »,« true »). Option (« inferSchema »,« true »). Csv (ваш файл)', который будет удобен в использовании. – Psidom

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