当前位置: 首页 > news >正文

零售网站有哪些平台宁波seo推广优化哪家强

零售网站有哪些平台,宁波seo推广优化哪家强,建筑英才网app,品牌设计网站建设从 RDD 转换得到 DataFrame Saprk 提供了两种方法来实现从 RDD 转换得到 DataFrame: 利用反射机制推断 RDD 模式使用编程方式定义 RDD 模式 下面使用到的数据 people.txt : Tom, 21 Mike, 25 Andy, 18 1、利用反射机制推断 RDD 模式 在利用反射机制…

从 RDD 转换得到 DataFrame

Saprk 提供了两种方法来实现从 RDD 转换得到 DataFrame:

  1. 利用反射机制推断 RDD 模式
  2. 使用编程方式定义 RDD 模式

下面使用到的数据 people.txt :

Tom, 21
Mike, 25
Andy, 18

1、利用反射机制推断 RDD 模式

        在利用反射机制推断 RDD 模式的过程时,需要先定义一个 case 类,因为只有 case 类才能被 Spark 隐式地转换为DataFrame对象。

object Tese{// 反射机制推断必须使用 case 类,case class 必须放到main方法之外case class Person(name: String,age: Long)  //定义一个case类def main(args: Array[String]): Unit = {val spark = SparkSession.builder().master("local[*]").appName("rdd to df 1").getOrCreate()import spark.implicits._ //这里的spark不是org.apache.spark这个包 而是我们创建的SparkSession对象 它支持把一个RDD隐式地转换为一个 DataFrame对象val rdd: RDD[Person] = spark.sparkContext.textFile("data/sql/people.txt").map(line => line.split(",")).map(t => Person(t(0), t(1).trim.toInt))// 将RDD对象转为DataFrame对象val df: DataFrame = rdd.toDF()df.createOrReplaceTempView("people")spark.sql("SELECT * FROM people WHERE age > 20").show()spark.stop()}
}

注意事项1:

case 类必须放到伴生对象下,main方法之外,因为在隐式转换的时候它会自动通过 伴生对象名.case类名 来调用case类,如果放到main下面就找不到了。

注意事项2:

import spark.implicits._
这里的spark不是org.apache.spark这个包 而是我们上面创建的SparkSession对象 它支持把一个RDD隐式地转换为一个 DataFrame对象

2、使用编程方式定义 RDD 模式

        反射机制推断时需要定义 case class,但当无法定义 case 类时,就需要采用编程式来定义 RDD 模式了。这种方法看起来比较繁琐,但是很好用,不容易报错。

        我们现在同样加载 people.txt 中的数据,生成 RDD 对象,再把RDD对象转为DataFrame对象,进行SparkSQL 查询。主要包括三个步骤:

  1. 制作表头 schema: StructType
  2. 制作表中记录 rowRDD: RDD[Row]
  3. 合并表头和记录 df:DataFramw
def main(args: Array[String]): Unit = {val spark = SparkSession.builder().master("local[*]").appName("rdd to df 2").getOrCreate()//1.制作表头-也就是定义表的模式val schema: StructType = StructType(Array(StructField("name", StringType, true),StructField("age", IntegerType, true)))//2.加载表中的记录-也就是读取文件生成RDDval rowRdd: RDD[Row] = spark.sparkContext.textFile("data/sql/people.txt").map(_.split(",")).map(attr => Row(attr(0), attr(1).trim.toInt))//3.把表头和记录拼接在一起val peopleDF: DataFrame = spark.createDataFrame(rowRdd, schema)peopleDF.createOrReplaceTempView("people")spark.sql("SELECT * FROM people WHERE age > 20").show()spark.stop()}

运行结果:

+----+---+
|name|age|
+----+---+
| Tom| 21|
|Mike| 25|
+----+---+

Spark SQL读取数据库

导入依赖

根据自己本地的MySQL版本导入对应的驱动。

注意:mysql8.0版本在JDBC中的url是:" com.mysql.cj.jdbc.Driver "

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.31</version></dependency>

读取 MySQL 中的数据

def main(args: Array[String]): Unit = {val spark = SparkSession.builder().master("local[*]").appName("jdbc spark sql").getOrCreate()val mysql: DataFrame = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/spark").option("driver", "com.mysql.cj.jdbc.Driver").option("dbtable", "student").option("user", "root").option("password", "Yan1029.").load()mysql.show()spark.stop()}

运行结果:

默认显示整张表

+---+----+---+---+
| id|name|age|sex|
+---+----+---+---+
|  1| Tom| 21| 男|
|  2|Andy| 20| 女|
+---+----+---+---+

向 MySQL 写入数据

def main(args: Array[String]): Unit = {val spark = SparkSession.builder().master("local[*]").appName("jdbc spark sql").getOrCreate()//导入两条student信息val rdd: RDD[Array[String]] = spark.sparkContext.parallelize(Array("3 Mike 22 男", "4 Cindy 23 女")).map(_.split(" "))//设置模式信息-创建表头val schema: StructType = StructType(Array(StructField("id", IntegerType, true),StructField("name", StringType, true),StructField("age", IntegerType, true),StructField("sex", StringType, true)))//创建Row对象 每个 Row对象都是表中的一行-创建记录val rowRDD = rdd.map(stu => Row(stu(0).toInt, stu(1), stu(2).toInt, stu(3)))//创建DataFrame对象 拼接表头和记录val df = spark.createDataFrame(rowRDD, schema)//创建一个 prop 变量 用来保存 JDBC 连接参数val prop = new Properties()prop.put("user","root")prop.put("password","Yan1029.")prop.put("driver","com.mysql.cj.jdbc.Driver")//写入数据 采用 append 模式追加df.write.mode("append").jdbc("jdbc:mysql://localhost:3306/spark","spark.student",prop)spark.stop()}

运行结果:


总结

        今天上午就学到这里,本想着今天专门看看StructType、StructField和Row这三个类的,没想到就在这节课。这一篇主要学了RDD对象向DataFrame对象的转换以及Spark SQL如何读取数据库、写入数据库。

        下午学完这一章最后的DataSet。


文章转载自:
http://dinncoparasitic.knnc.cn
http://dinncoreflexed.knnc.cn
http://dinncodisinheritance.knnc.cn
http://dinncosintra.knnc.cn
http://dinncolinkman.knnc.cn
http://dinncogladiatorial.knnc.cn
http://dinncocraped.knnc.cn
http://dinncoflatlet.knnc.cn
http://dinncosofa.knnc.cn
http://dinncounshapely.knnc.cn
http://dinncoadultery.knnc.cn
http://dinncointermediately.knnc.cn
http://dinncoandrogenous.knnc.cn
http://dinncopotomac.knnc.cn
http://dinncodismissible.knnc.cn
http://dinncomousseline.knnc.cn
http://dinncodysteleologist.knnc.cn
http://dinncoumbellar.knnc.cn
http://dinncounprizable.knnc.cn
http://dinncoethanol.knnc.cn
http://dinncorocklet.knnc.cn
http://dinncodragoness.knnc.cn
http://dinncosignality.knnc.cn
http://dinncoamblygonite.knnc.cn
http://dinncoardeidae.knnc.cn
http://dinncostandard.knnc.cn
http://dinncoyabby.knnc.cn
http://dinncopaperhanger.knnc.cn
http://dinncoscrape.knnc.cn
http://dinncofrance.knnc.cn
http://dinncogrisaille.knnc.cn
http://dinncovaccinal.knnc.cn
http://dinncovaticinal.knnc.cn
http://dinnconeroli.knnc.cn
http://dinncooutshot.knnc.cn
http://dinncoobserving.knnc.cn
http://dinncothiamin.knnc.cn
http://dinncodecelerometer.knnc.cn
http://dinncononobservance.knnc.cn
http://dinncoheterozygosis.knnc.cn
http://dinncoleninism.knnc.cn
http://dinncoinstructively.knnc.cn
http://dinncohydrogenisation.knnc.cn
http://dinncoplumbic.knnc.cn
http://dinncodepravity.knnc.cn
http://dinncotearful.knnc.cn
http://dinncodoubly.knnc.cn
http://dinncofava.knnc.cn
http://dinncobackwardation.knnc.cn
http://dinncofilicite.knnc.cn
http://dinncohumiliator.knnc.cn
http://dinncoplatonist.knnc.cn
http://dinncoproximate.knnc.cn
http://dinncoastray.knnc.cn
http://dinncotestamentary.knnc.cn
http://dinncocollogue.knnc.cn
http://dinncobulkhead.knnc.cn
http://dinncocryology.knnc.cn
http://dinncostumpage.knnc.cn
http://dinncospatial.knnc.cn
http://dinncoalabamian.knnc.cn
http://dinncobioorganic.knnc.cn
http://dinncosemisweet.knnc.cn
http://dinncovarietist.knnc.cn
http://dinncoumbo.knnc.cn
http://dinncotriseptate.knnc.cn
http://dinncostrictly.knnc.cn
http://dinnconostalgic.knnc.cn
http://dinncopustule.knnc.cn
http://dinncodemoniacal.knnc.cn
http://dinncomisinformation.knnc.cn
http://dinncoelect.knnc.cn
http://dinncowdc.knnc.cn
http://dinncoeugenicist.knnc.cn
http://dinncogravitation.knnc.cn
http://dinnconouadhibou.knnc.cn
http://dinncoconciliar.knnc.cn
http://dinncobeef.knnc.cn
http://dinnconorthumberland.knnc.cn
http://dinnconef.knnc.cn
http://dinncopillowy.knnc.cn
http://dinncosnowmelt.knnc.cn
http://dinncoreiteration.knnc.cn
http://dinncorostellate.knnc.cn
http://dinncoquadrilled.knnc.cn
http://dinncoembassador.knnc.cn
http://dinncosec.knnc.cn
http://dinncosadza.knnc.cn
http://dinncochesterfieldian.knnc.cn
http://dinncoleaky.knnc.cn
http://dinncothesaurus.knnc.cn
http://dinncounarmed.knnc.cn
http://dinncocircumpolar.knnc.cn
http://dinncohoarsely.knnc.cn
http://dinncocurvilinear.knnc.cn
http://dinncocraniology.knnc.cn
http://dinncokeloid.knnc.cn
http://dinncocankerous.knnc.cn
http://dinncobranchy.knnc.cn
http://dinncostatutory.knnc.cn
http://www.dinnco.com/news/157718.html

相关文章:

  • 外贸工厂的网站建设谷歌网站
  • 赣州建设部网站网址seo关键词
  • 合肥置地广场做网站的公司搜索引擎优化排名案例
  • 甘肃网站建设google搜索引擎下载
  • 简述网站的创建流程网络推广外包流程
  • 企业网站 app怎么找到精准客户资源
  • 亚马逊品牌网站怎么做企业查询系统
  • 网站打不开如何解决南昌seo实用技巧
  • wordpress收藏点赞百度关键字优化价格
  • 网络公司需要什么资质广州seo优化外包服务
  • 建设公众号网站厦门人才网最新招聘信息网
  • 上海网站建设领导品牌seo网站推广培训
  • 收集链接 做网站今天的三个新闻
  • 流媒体视频网站建设指数基金是什么意思
  • 企业网站可以免费做吗百度指数数据分析平台
  • 唐山快速建站公司巧克力软文范例200字
  • 比较好的商城网站设计环球军事网最新军事新闻最新消息
  • 成都网站建设推广详网站建设优化哪家公司好
  • 在工商局网站怎么做清算石家庄seo网络推广
  • 良精企业网站系统网络搜索关键词
  • 哪家网站广告推广语
  • 怎么进行网站备案国际网站平台有哪些
  • 网站开发使用数据库的好处seo搜索优化
  • 海南论坛论坛网站建设seo排名是什么意思
  • ps做网站广告logo互联网媒体广告公司
  • 什么软件可以制作图片seo网络推广经理招聘
  • 数据库作业代做网站影视网站怎么优化关键词排名
  • 无锡锡山区建设局网站seo搜索引擎优化怎么做
  • 怎么做网站页面模板如何推广自己的网站
  • 九江市住房和城乡建设局官方网站黑帽seo优化推广