Spark中将RDD转换成DataFrame的两种方法
Posted lestatzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark中将RDD转换成DataFrame的两种方法相关的知识,希望对你有一定的参考价值。
总结下Spark中将RDD转换成DataFrame的两种方法, 代码如下:
方法一: 使用
createDataFrame
方法
```java
//StructType and convert RDD to DataFrameval 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的两种方法的主要内容,如果未能解决你的问题,请参考以下文章
Spark中RDD转换成DataFrame的两种方式(分别用Java和Scala实现)
spark-sql将Rdd转换为DataFrame进行操作的两种方法
如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?