600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Spark RDD与DataFrame相互转换

Spark RDD与DataFrame相互转换

时间:2022-06-09 13:18:27

相关推荐

Spark RDD与DataFrame相互转换

@羲凡——只为了更好的活着

Spark RDD与DataFrame相互转换

Q:Spark中RDD转成DataFrame用什么算子

A:.rdd

Q:Spark中DataFrame转成RDD用什么算子

A:.toDF

1.直接上代码

import org.apache.spark.rdd.RDDimport org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}import org.apache.spark.sql.{DataFrame, SparkSession}object Demo{def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("Demo").master("local[*]").getOrCreate()val file="file:///D:\\data\\test.txt"val schema = StructType(Array(StructField("name",StringType), StructField("age",IntegerType)))// DataFrame转换成RDDprintln("=========DataFrame转换成RDD=========")val dataFrame: DataFrame = spark.read.option("delimiter",",").schema(schema).csv(file)dataFrame.show()val rdd: RDD[(String, Int)] = dataFrame.rdd.map(t => (t.getAs[String](0),t.getAs[Int](1)))println("===转换后的结果如下===")rdd.foreach(println)// RDD转换成DataFrameprintln("=========RDD转换成DataFrame=========")import spark.implicits._val rdd2: RDD[(String, String)] = spark.sparkContext.textFile(file).map(t=>{val arr = t.split(",")(arr(0),arr(1))})rdd2.foreach(println)val dataFrame2: DataFrame = rdd2.toDF("name","age")println("===转换后的结果如下===")dataFrame2.show()spark.stop()}}

2.结果展示

=========DataFrame转换成RDD=========+----+---+|name|age|+----+---+| 扎克|227|| 赵信|200|| 魔腾|188|+----+---+===转换后的结果如下===(扎克,227)(赵信,200)(魔腾,188)=========RDD转换成DataFrame=========(魔腾,188)(扎克,227)(赵信,200)===转换后的结果如下===+----+---+|name|age|+----+---+| 扎克|227|| 赵信|200|| 魔腾|188|+----+---+

====================================================================

@羲凡——只为了更好的活着

若对博客中有任何问题,欢迎留言交流

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。