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

Spark RDD与DataFrame相互转换

Q:Spark中RDD转成DataFrame用什么算子
A:.rdd
Q:Spark中DataFrame转成RDD用什么算子
A:.toDF

1.直接上代码
import org.apache.spark.rdd.RDD
import 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|
+----+---+

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

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

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

Spark RDD与DataFrame相互转换相关推荐

  1. 大数据入门:Spark RDD、DataFrame、DataSet

    在Spark的学习当中,RDD.DataFrame.DataSet可以说都是需要着重理解的专业名词概念.尤其是在涉及到数据结构的部分,理解清楚这三者的共性与区别,非常有必要.今天的大数据入门分享,我们 ...

  2. Spark RDD与DataFrame

    1. DataFrame概念 DataFrame的前身是SchemaRDD,从Spark 1.3.0开始SchemaRDD更名为DataFrame.与SchemaRDD的主要区别是:DataFrame ...

  3. Spark RDD、DataFrame原理及操作详解

    RDD是什么? RDD (resilientdistributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用. RDD内部可以 ...

  4. Spark —— RDD、DataFrame 与 Dataset

    0. DataFrame 的成员函数及操作 DataFrame 需要有属性列名,比如某 df有两个属性列,user/artist: df.agg(min("user"), max( ...

  5. Spark中RDD、DataFrame和DataSet的区别与联系

    一.RDD.DataFrame和DataSet的定义 在开始Spark RDD与DataFrame与Dataset之间的比较之前,先让我们看一下Spark中的RDD,DataFrame和Dataset ...

  6. spark与python关系_spark: RDD与DataFrame之间的相互转换方法

    DataFrame是一个组织成命名列的数据集.它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化.DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive ...

  7. scala写入mysql_spark rdd转dataframe 写入mysql的实例讲解

    dataframe是在spark1.3.0中推出的新的api,这让spark具备了处理大规模结构化数据的能力,在比原有的RDD转化方式易用的前提下,据说计算性能更还快了两倍.spark在离线批处理或者 ...

  8. python print rdd_spark: RDD与DataFrame之间的相互转换方法

    DataFrame是一个组织成命名列的数据集.它在概念上等同于关系数据库中的表或R/Python中的数据框架,但其经过了优化.DataFrames可以从各种各样的源构建,例如:结构化数据文件,Hive ...

  9. 【大数据开发】SparkSQL——RDD、DataFrame、DataSet相互转换、DSL常用方法、SQL风格语法、Spark读写操作、获取Column对象的方式

    take,takeAsList是Action操作 limit⽅法获取指定DataFrame的前n⾏记录,得到⼀个新的DataFrame对象.和take与head不同的是,limit⽅法不是Action ...

最新文章

  1. mybatis简化实现思路
  2. 阿里云服务器tomcat配置https
  3. 零基础跟我学前端之css3基础
  4. 一次经典的tcp三次握手
  5. 终于有人把5G和边缘计算的关系说清楚了 | 技术头条
  6. ZetCode 教程翻译计划正式启动 | ApacheCN
  7. mnist 转图像_解决MNIST图像分类问题
  8. C语言学习资料汇集 助你成为更好的程序员
  9. Quartus II 13.1的安装及使用
  10. 如何用Camtasia制作简单动画?
  11. craftsmanship中文_欢迎访问叶登民简体中文主页!
  12. ikbc c104win键盘失灵以及数字键失灵
  13. PTA数字金字塔(PTA怎么用以及代码怎么敲)
  14. java连接neo4j(使用spring data neo4j)
  15. vs2013 编译 该文件已在源编辑器之外被修改
  16. c语言菜单即功能,C语言 菜单专题
  17. 蓝牙bluetoothGatt.disconnect()和bluetoothGatt.close()两个方法的区别
  18. 火狐linux 32位,火狐浏览器32.0版本-Firefox(火狐浏览器)32.0版下载 v32.0官方版--pc6下载站...
  19. 晚上不用加班了,推荐十款精选IntelliJIdea插件,效率提升N倍
  20. 常用神经网络结构图绘图工具推荐

热门文章

  1. python爬虫教程:Python写网络爬虫的优势和理由
  2. 华丽的伪装--dns协议上线你的c2
  3. 服务器单系统盘和双系统盘,一种比较简单快速的硬盘全新安装Win10单双系统的方法...
  4. 碾转相除法求最大公约数
  5. Java中令人眼花撩乱的数字魔法!
  6. INTEL workshop IOTG EDGE computing
  7. 苹果android在哪里设置字体大小,iPhone11字体大小怎么调?苹果手机调节字体大小的三种方法...
  8. 四川数字经济发展分析:四川21市州数字经济发展活跃度解密
  9. 软考高级-系统架构师-访问控制XACML与RBAC
  10. Unity中左手坐标系的四元数转右手坐标系中的四元数