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

Spark中将RDD转换成DataFrame的两种方法

时间:2019-05-17 21:58:55      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:case   font   cas   总结   context   无法   name   convert   函数   

总结下Spark中将RDD转换成DataFrame的两种方法, 代码如下:

  • 方法一: 使用createDataFrame方法
    ```java
    //StructType and convert RDD to DataFrame

    val schema = StructType(
    Seq(
    StructField("name",StringType,true)
    ,StructField("age",IntegerType,true)
    )
    )

    val rowRDD = sparkSession.sparkContext
    .textFile("/tmp/people.txt",2)
    .map( x => x.split(",")).map( x => Row(x(0),x(1).trim().toInt))
    sparkSession.createDataFrame(rowRDD,schema)
    }

    }
    ```
  • 方法二: 使用toDF方法
    ```java
    //use case class Person
    case class Person(name:String,age:Int)

    //导入隐饰操作,否则RDD无法调用toDF方法
    import sparkSession.implicits._
    val peopleRDD = sparkSession.sparkContext
    .textFile("/tmp/people.txt",2)
    .map( x => x.split(",")).map( x => Person(x(0),x(1).trim().toInt)).toDF()

    ``><font color=red><B>注意</b> ><font color=darkblue>请不要将case Class`定义在main 方法中与toDF一起使用,或与使用toDF定义在同一函数中

Spark中将RDD转换成DataFrame的两种方法

标签:case   font   cas   总结   context   无法   name   convert   函数   

原文地址:https://www.cnblogs.com/lestatzhang/p/10883835.html

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