Преобразование RDD в DataFrame в Spark с помощью Scala

у меня textRDD: org.apache.spark.rdd.RDD[(String, String)]

Я хотел бы преобразовать его в DataFrame. Столбцы соответствуют заголовку и содержанию каждой страницы (строки).


person Climbs_lika_Spyder    schedule 08.10.2015    source источник


Ответы (2)


Используйте toDF(), укажите имена столбцов, если они у вас есть.

val textDF = textRDD.toDF("title": String, "content": String)
textDF: org.apache.spark.sql.DataFrame = [title: string, content: string]

or

val textDF = textRDD.toDF()
textDF: org.apache.spark.sql.DataFrame = [_1: string, _2: string]

Оболочка автоматически импортирует (я использую версию 1.5), но вам может понадобиться import sqlContext.implicits._ в приложении.

person Climbs_lika_Spyder    schedule 08.10.2015
comment
Scala-версия toDF поддерживает только имена столбцов, а не схему. Если вы хотите предоставить схему, вы должны использовать SQLContext. createDataFrame. - person zero323; 08.10.2015
comment
Спасибо, я изменил его на столбцы. Схема означает нечто иное. - person Climbs_lika_Spyder; 09.10.2015
comment
Я бы также отказался от аннотаций типа: toDF("title", "content"). На самом деле ничего не выиграешь, но для тех, кто не знаком со Scala, может показаться, что он на самом деле связан с типами столбцов. - person zero323; 09.10.2015

Обычно я делаю это следующим образом:

Создайте класс case следующим образом:

case class DataFrameRecord(property1: String, property2: String)

Затем вы можете использовать карту для преобразования в новую структуру с помощью класса case:

rdd.map(p => DataFrameRecord(prop1, prop2)).toDF()
person AlexL    schedule 10.12.2015