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


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

  • 方法一: 使用createDataFrame方法
    //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方法
    //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()  
    
    

注意
请不要将case Class定义在main 方法中与toDF一起使用,或与使用toDF定义在同一函数中


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM