码迷,mamicode.com
首页 > 其他好文 > 详细

RDD转换成DataFrames

时间:2017-03-31 10:10:53      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:pac   schema   scheme   sch   trim   person   ext   gui   api   

官方提供了2种方法

1.利用反射来推断包含特定类型对象的RDD的schema。这种方法会简化代码并且在你已经知道schema的时候非常适用。

先创建一个bean类

case class Person(name: String, age: Int)

然后将Rdd转换成DataFrame

val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
people.registerTempTable("people")

注意:toDF()方法在spark的RDD api上是没找到的,是否为函数式编程语言,可以直接调用别的类的方法?因为toDF()方法是在DataFrame中能找到。

2.使用编程接口,构造一个schema并将其应用在已知的RDD上。

先创建一个scheme

val schema = StructType( schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, true)))

然后将scheme应用到Rdd上

val rowRDD = people.map(_.split(",")).map(p => Row(p(0), p(1).trim))
val peopleDataFrame = sqlContext.createDataFrame(rowRDD, schema)

官网将的很清晰,直接参考官网的方法。

官网链接:Interoperating with RDDs

RDD转换成DataFrames

标签:pac   schema   scheme   sch   trim   person   ext   gui   api   

原文地址:http://www.cnblogs.com/nucdy/p/6649842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!