首页 > 编程语言 >寒假学习 11 编程实现将 RDD 转换为 DataFrame

寒假学习 11 编程实现将 RDD 转换为 DataFrame

时间:2024-02-25 15:59:15浏览次数:31  
标签:11 scala DataFrame RDD sql apache org spark id

请将数据复制保存到 Linux 系统中,命名为 employee.txt,实现从 RDD 转换得到DataFrame,并按“id:1,name:Ella,age:36”的格式打印出 DataFrame 的所有数据。请写出程序代码。

scala> import org.apache.spark.sql.types._

import org.apache.spark.sql.types._

 

scala> import org.apache.spark.sql.Row

import org.apache.spark.sql.Row

scala>  val peopleRDD = spark.sparkContext.textFile("file:///home/hadoop/桌面/employee.txt")

peopleRDD: org.apache.spark.rdd.RDD[String] = file:///home/hadoop/桌面/employee.txt MapPartitionsRDD[55] at textFile at <console>:32

 

scala> val schemaString = "id name age"

schemaString: String = id name age

 

scala>  val fields = schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, nullable = true))

fields: Array[org.apache.spark.sql.types.StructField] = Array(StructField(id,StringType,true), StructField(name,StringType,true), StructField(age,StringType,true))

 

scala> val schema = StructType(fields)

schema: org.apache.spark.sql.types.StructType = StructType(StructField(id,StringType,true), StructField(name,StringType,true), StructField(age,StringType,true))

 

scala>  val rowRDD = peopleRDD.map(_.split(",")).map(attributes => Row(attributes(0), attributes(1).trim, attributes(2).trim))

rowRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row] = MapPartitionsRDD[57] at map at <console>:34

 

scala> val peopleDF = spark.createDataFrame(rowRDD, schema)

peopleDF: org.apache.spark.sql.DataFrame = [id: string, name: string ... 1 more field]

 

scala> peopleDF.createOrReplaceTempView("people")

 

scala> val results = spark.sql("SELECT id,name,age FROM people")

results: org.apache.spark.sql.DataFrame = [id: string, name: string ... 1 more field]

 

scala> results.map(attributes => "id: " + attributes(0)+","+"name:"+attributes(1)+","+"age:"+attributes(2)).show()

 

 

标签:11,scala,DataFrame,RDD,sql,apache,org,spark,id
From: https://www.cnblogs.com/jizhaosai/p/18032479

相关文章

  • 史上速度最快的Windows来了!Windows 11 24H2将首发支持Wi-Fi 7、USB4 2.0
    据WC报道,Windows1124H2将首次引入对WI-Fi7硬件的支持,该版本预计将在今年晚些时候作为微软的下一个重大操作系统更新推出。此前,支持Wi-Fi7的硬件已经开始发货,但目前版本的Windows上不支持。Wi-Fi7(IEEE802.11be标准),拥有极高的吞吐速率,速度比Wi-Fi6E快近4倍(Wi-Fi7理论峰值4......
  • 《程序是怎样跑起来的》第11章读书笔记
    第11章先提出了问题应用程序是否与硬件有关。操作系统还是为应用程序提供了间接访问硬件的方法,那就是使用系统调用在windows系统中系统调用也被称为API,每个AI都是一个能够被应用程序调用的函数,这些函数的本体位于dll文件中那么计算机主体上用于连接显示器键盘等外部设备的接口。这......
  • 微软“史诗级改进”!Win11安装更新后可不用重启电脑
    据国外媒体报道,微软正计划在Windows11更新中引入“热补丁”功能,这样用户在安装每月的累积更新时,安装完成之后就不再需要重启电脑。据了解,“热补丁”的工作原理是“修补运行进程的内存代码,而无需重启进程”。报道表示,微软打算在Windows11上使用“热补丁”功能来提供每月安全更......
  • 《程序是怎么跑起来》的第五次读后感(11 12章)
    《程序是怎么跑起来的》第11章计算机的硬件是计算机系统中各种设备的总称。计算机的硬件应包括5个基本部分,即运算器、控制器、存储器、输入设备、输出设备,各基本部件的功能各异。运算器能进行加、减、乘、除等基本运算。存储器不仅能存放数据,而且也能存放指令,计算机应能区分是数据......
  • 11.Feign组件介入Nacos微服务
    创建三个项目Summerboot.Feign,Summerboot.Client(http://192.168.10.13:5197),NacosService(http://192.168.10.13:5199)注意Summerboot.Client依赖Summerboot.Feign。安装包:SummerBootSummerboot.Client客户端是用来调用Feign组件先添加一个JWT配置类///<summary>///JWT......
  • P1137 旅行计划
    原题链接题解拓扑排序+dp。首先以入度为零的结点为起始结点,其游览城市数量为1,接下来每到下一结点,游览城市数++;即当前结点的游览城市数是上一结点的游览数+1,并取最大值。code #include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5;inthead[N],Next[N*2],to[N......
  • 第11章硬件控制方法
    硬件的控制一般通过操作系统进行,应用不直接与硬件进行交互,其通过调用操作系统提供的api间接的控制硬件(也称系统调用)Windows控制硬件时主要借助的是输入输出指令,最具代表性的就是IN与OUT指令,这两个指令也是汇编语言的助记符IN指令:通过指定端口号的端口输入数据,并将其存储在CPU内......
  • P1197 [JSOI2008] 星球大战
    原题链接题解,请看题解区第一篇,看一遍就会了code#include<bits/stdc++.h>usingnamespacestd;intfa[400005]={0};intfinds(intnow){returnfa[now]=(fa[now]==now?now:finds(fa[now]));}vector<int>G[400005];intbroke[400005];intBroke[400005]={0};intm......
  • 暑期集训 Day11 —— 模拟赛复盘
    ${\color{Green}\mathrm{Problem\1:Subarray}}$签到失败...直接二进制分组,找出所有二进制位=0的方法。死因:二进制分组没想出来...${\color{White}\mathrm{}}$${\color{White}\mathrm{}}$${\color{White}\mathrm{}}$${\color{Green}\mathrm{Problem\2:......
  • 2-11. 受伤和死亡的逻辑和动画
    添加受伤和死亡动画片段通过新的层来实现受伤和死亡动画点击动画控制器右上角的+,然后新建一个Layer注意Weight要改成1,Blending要改成Additive受伤的话,我们通过hurt来触发,死亡我们通过isDead来控制在HurtLayer中,当hurt触发的时候,就会播放blueHurt动画,......