第五周周二练习:实验5sparksql编程初级实践(代码片段)

mm20 mm20     2022-12-03     460

关键词:

1.题目:

技术图片源码:

import java.util.Properties
import org.apache.spark.sql.types._
import org.apache.spark.sql.Row
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.DataFrameReader
object TestMySQL 
    def main(args: Array[String]) 
     val spark = SparkSession.builder().appName("RddToDFrame").master("local").getOrCreate()
   import spark.implicits._ 
        val employeeRDD = spark.sparkContext.parallelize(Array("3 Mary F 26","4 Tom M 23")).map(_.split(" "))
        val  schema  =  StructType(List(StructField("id",  IntegerType,true),StructField("name",  StringType,  true),StructField("gender",  StringType,true),StructField("age", IntegerType, true)))
        val  rowRDD  =  employeeRDD.map(p  =>  Row(p(0).toInt,p(1).trim,p(2).trim,p(3).toInt))
        val employeeDF = spark.createDataFrame(rowRDD, schema)
        val prop = new Properties()
        prop.put("user", "root")
        prop.put("password", "hadoop")
        prop.put("driver","com.mysql.jdbc.Driver")
        employeeDF.write.mode("append").jdbc("jdbc:mysql://localhost:3306/sparktest","sparktest.employee", prop)
        val jdbcDF = spark.read.format("jdbc").option("url","jdbc:mysql://localhost:3306/sparktest").option("driver","com.mysql.jdbc.Driver").option("dbtable","employee").option("user","root").option("password", "hadoop").load()
        jdbcDF.agg("age" -> "max", "age" -> "sum").show()    
        print("ok")
    

数据库数据:
技术图片

 

结果:

技术图片

 2.编程实现将 RDD  转换为 DataFrame

技术图片

 

官网给出两种方法,这里给出一种(使用编程接口,构造一个 schema 并将其应用在已知的 RDD 上。):

源码:

import org.apache.spark.sql.types._
import org.apache.spark.sql.Encoder
import org.apache.spark.sql.Row
import org.apache.spark.sql.SparkSession
object RDDtoDF 
def main(args: Array[String]) 
   val spark = SparkSession.builder().appName("RddToDFrame").master("local").getOrCreate()
   import spark.implicits._  
val  employeeRDD  =spark.sparkContext.textFile("file:///usr/local/spark/employee.txt")
val schemaString = "id name age"
val fields = schemaString.split(" ").map(fieldName => StructField(fieldName,
StringType, nullable = true))
val schema = StructType(fields)
val  rowRDD  =  employeeRDD.map(_.split(",")).map(attributes  =>
Row(attributes(0).trim, attributes(1), attributes(2).trim))
val employeeDF = spark.createDataFrame(rowRDD, schema)
employeeDF.createOrReplaceTempView("employee")
val results = spark.sql("SELECT id,name,age FROM employee")
results.map(t => "id:"+t(0)+","+"name:"+t(1)+","+"age:"+t(2)).show()



 

 结果:

技术图片

 

第五周内核编译与系统调用

内核编译与系统调用任务详情参考“实践2.2编译内核及系统调用”完成相实践出问题参考“编译内核之扩大硬盘空间.docx”附件提交新加系统调用测试结果截图实验截图感受此次试验老是出问题,下载好了内核之后,解压一直出... 查看详情

rdd编程初级实践(基于python)(代码片段)

RDD编程初级实践(基于python)1.实验目的2.实验环境3.实验数据3.1pyspark交互式编程(实验描述)3.2编写独立应用程序实现数据去重(实验描述)3.3编写独立应用程序实现求平均值问题(实验描述)3.4... 查看详情

rdd编程初级实践

RDD编程初级实践一、实验目的(1)熟悉Spark的RDD基本操作及键值对操作;(2)熟悉使用RDD编程解决实际具体问题的方法。二、实验平台操作系统:Ubuntu16.04Spark版本:2.4.0Python版本:3.4.3三、实验内... 查看详情

暑假第五周总结(2018.8.6-8.12)

本周总结看了高数第5章《面对对象程序设计》9.10章阅读完成《Java从入门到精通(第3版)》读了7.8章完成面向对象的实验任务7.8英语单词背诵了200词左右练习了java的编程看了4节网课总结:  学习时间:14h左右   &... 查看详情

吴恩达machinelearning第五周课后练习代码

吴恩达MachineLearning第五周课后练习代码概述本周主要讲解了反向传播算法(backpropagationalgorithm),用于计算神经网络中代价方程(costfunction)对变量theta的偏导数值。本周主要内容即实现该算法。nnCostFunction.mfunction[Jgrad]=nnCostFunction(nn_p... 查看详情

第五周总结

第五周迎来了java的团队合作,找了个好队友,思路很清晰!这周课上只做了一个小小的练习,求数组最大值,因为老师给了一段代码,改了改很快就写出来了。然后就是重头戏,石家庄地铁~我们只完成了最简单的两条线的计算... 查看详情

sparksql编程初级实践

今下午在课上没有将实验做完,课下进行了补充,最终完成。下面附上厦门大学数据库实验室中spark实验官网提供的标准答案,以供参考。 三、实验内容和要求1.SparkSQL基本操作 将下列json数据复制到你的ubuntu系统/usr/loca... 查看详情

第五周作业

课后习题:==========课外实践作业P467----------1SEEDSQL注入实验代码注入是针对Web应用程序的主流攻击技术之一,通过利用Web应用程序的输入验证不完善漏洞,使得Web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄... 查看详情

实验5mapreduce初级编程实践——编程实现文件合并和去重操作(代码片段)

一、实验目的通过实验掌握基本的MapReduce编程方法;掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。二、实验平台操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04)Hadoop版本ÿ... 查看详情

第五周编程总结

计算存款利息(1)实验代码#include<stdio.h>#include<math.h>int main (void) int money; double year, rate, interest; scanf("%d %lf %lf", &money, &year, &rate); interest = money * pow (1&n... 查看详情

第五周课程总结&实验报告(三)

实验三 String类的应用实验目的掌握类String类的使用;学会使用JDK帮助文档;实验内容1.已知字符串:"thisisatestofjava".按要求执行以下操作:(要求源代码、结果截图。)统计该字符串中字母s出现的次数。统计该字符串中子串&... 查看详情

人工智能实践:tensorflow笔记-第五周(代码片段)

第五周:MNIST数字识别MNIST数据集:&emsp?提供6万张2828像素点的0~9手写数字图片和标签,用于训练。&emsp?提供1万张2828像素点的0~9手写数字图片和标签,用于测试。使用下面两行代码来下载数据集:fromtensorflow.examples.tutorials.m... 查看详情

高级编程技术作业第五周

9-19-29-39-59-710-310-410-510-610-7  查看详情

暑假第五周进度报告

本周主要内容       背了大量的英语单词,练习了英语口语       同时继续在慕课网上面学习编程技巧      学习了第七章动态显示信息和第八章 分页显... 查看详情

2017-2018-2《网络对抗技术》20155322第五周exp2后门原理与实践(代码片段)

#2017-2018-2《网络对抗技术》20155322第五周Exp2后门原理与实践[博客目录]1-实践目标1.1-实践介绍1.2-实践内容1.3-实践要求2-实践过程2.1-使用nc实现win,mac,Linux间的后门连接2.2-meterpreter的应用2.3-MSFPOST模块的应用2.4-注入Shellcode并执行3-... 查看详情

第五周任务以及结对编程

转眼已经第三周了。这周主要内容有下:    1.完成自己没完成的任务。    2.结对编程。    3.PSP。    4.站立会议(待开)。    5.燃尽图。具体任务如下:    这次结对编程我是和高鑫同学进行结... 查看详情

20165337第五周实验报告(代码片段)

一.命令行下Java程序开发1.输入mkdir指令建立文件夹。2.输入javac-d.目标文件夹/类名.java编译文件3.输入javac包名.类名运行文件程序运行结果如下:二.使用IDEA调试程序1.编写程序及运行2.依次向下单步调试3.在循环内调试4.调试过程... 查看详情

第五周考试题及练习题

1.1添加一个用户mysql指定uid为888,禁止登陆并且不创建家目录。useradd-u888-M-s/sbin/nologinmysql 1.2简述raid0raid1raid5raid10的工作原理和特点?raid0:最少需要一块,只要坏一块,都无法使用,追求性能,安全性不高raid1:只能是两块,磁... 查看详情