у меня textRDD: org.apache.spark.rdd.RDD[(String, String)]
Я хотел бы преобразовать его в DataFrame. Столбцы соответствуют заголовку и содержанию каждой страницы (строки).
у меня textRDD: org.apache.spark.rdd.RDD[(String, String)]
Я хотел бы преобразовать его в DataFrame. Столбцы соответствуют заголовку и содержанию каждой страницы (строки).
Используйте 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._
в приложении.
toDF
поддерживает только имена столбцов, а не схему. Если вы хотите предоставить схему, вы должны использовать SQLContext. createDataFrame
.
- person zero323; 08.10.2015
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()