第4章 Spark SQL结构化数据文件处理
- 格式:pptx
- 大小:1.33 MB
- 文档页数:35
学会使用ApacheSpark进行大数据分析和处理的基本操作Apache Spark是一个快速、通用、可扩展的大数据处理引擎,被广泛应用于大数据分析和处理中。
学会使用Apache Spark进行大数据分析和处理的基本操作,对于数据科学家和大数据工程师来说至关重要。
本文将介绍Apache Spark的基本概念和操作,包括数据加载、转换、过滤、聚合以及输出等,以帮助读者快速上手使用Apache Spark进行大数据分析和处理。
第一章:Apache Spark简介与安装Apache Spark是一款开源的大数据处理框架,提供了高效的分布式计算能力,可以处理大规模的数据集。
在使用Apache Spark 之前,我们需要先安装Spark并配置好相应的环境。
具体的安装过程可以在Apache Spark官方网站上找到,并根据操作系统类型和版本进行安装、设置和配置。
第二章:数据加载与存储在使用Apache Spark进行大数据分析和处理之前,我们需要先将数据加载到Spark中。
Spark支持多种数据源和格式,如文本文件、CSV文件、JSON文件、数据库等。
可以使用Spark的API或工具(如spark-submit或spark-shell)来加载和读取数据。
除了加载数据,我们还可以将结果保存到各种外部存储介质中,如HDFS、S3或关系型数据库等。
第三章:数据转换与过滤在数据分析和处理过程中,常常需要对数据进行转换和过滤以满足需求。
Apache Spark提供了丰富的转换和过滤操作,如映射、过滤、排序、去重等。
通过这些操作,我们可以对数据集进行加工和处理,以便于后续的分析和挖掘。
第四章:数据聚合与计算数据聚合是大数据处理中常见的操作之一,Apache Spark提供了多种聚合和计算函数,如求和、平均值、最大值、最小值、统计等。
通过这些函数,我们可以对数据集进行统计和计算,以获取更有价值的信息。
此外,Spark还支持自定义聚合函数和窗口函数,可以满足更加复杂的需求。
Spark读取txt,并结构化后执⾏SQL操作1.准备 idea , 配置好scala ,需要有 Spark sql包 !注意:如果⾃⼰Spark能跑 ,就不要复制我的POM了,代码能直接⽤.---------------贴⼀下POM , 我⽤的是Spark版本是 2.4.3, Spark_core以及sql是2.11<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.alpha3</groupId><artifactId>Scala008</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- https:///artifact/org.scala-lang/scala-library --><!-- 以下dependency都要修改成⾃⼰的scala,spark,hadoop版本--><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.11.12</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.2.0</version><exclusions><exclusion><artifactId>hadoop-common</artifactId><groupId>org.apache.hadoop</groupId></exclusion><exclusion><artifactId>netty-all</artifactId><groupId>ty</groupId></exclusion></exclusions></dependency><!--<!– https:///artifact/org.apache.hbase/hbase-server –>--><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>1.2.0</version><exclusions><exclusion><artifactId>hadoop-client</artifactId><groupId>org.apache.hadoop</groupId></exclusion><exclusion><artifactId>netty-all</artifactId><groupId>ty</groupId></exclusion><exclusion><artifactId>hadoop-common</artifactId><groupId>org.apache.hadoop</groupId></exclusion></exclusions></dependency><!-- https:///artifact/org.apache.hadoop/hadoop-client --><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0</version></dependency><!-- https:///artifact/org.apache.spark/spark-mllib --><dependency><groupId>org.apache.spark</groupId><artifactId>spark-mllib_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-hive_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming-kafka-0-10_2.11</artifactId><version>2.4.3</version></dependency><!-- https:///artifact/org.apache.spark/spark-sql-kafka-0-10 --> <dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql-kafka-0-10_2.11</artifactId><version>2.4.3</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>0.13.0</version></dependency><!-- https:///artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.38</version></dependency></dependencies><build><!--程序主⽬录,按照⾃⼰的路径修改,如果有测试⽂件还要加⼀个testDirectory--> <sourceDirectory>src/main/scala</sourceDirectory><plugins><plugin><groupId>org.scala-tools</groupId><artifactId>maven-scala-plugin</artifactId><version>2.15.2</version><executions><execution><goals><goal>compile</goal><goal>testCompile</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters><!--<transformers>--><!--<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">--><!--<mainClass></mainClass>--><!--</transformer>--><!--</transformers>--></configuration></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><addClasspath>true</addClasspath><useUniqueVersions>false</useUniqueVersions><classpathPrefix>lib/</classpathPrefix><!--修改为⾃⼰的包名.类名,右键类->copy reference--><mainClass>com.me.Scala008</mainClass></manifest></archive></configuration></plugin></plugins></build></project>2. 第⼆步 ,创建伴⽣类 , 何谓伴⽣类 , 就是此类可以直接执⾏main⽅法import org.apache.spark.sql.types.{StringType, StructField, StructType}import org.apache.spark.sql.{Row, SparkSession}object Spark_File_to_SQL {def main(args: Array[String]): Unit = {import org.apache.log4j.{Level, Logger}Logger.getLogger("org").setLevel(Level.OFF)val ss = SparkSession.builder().appName("Scala009").master("local").getOrCreate()//获取 SparkContextval sc = ss.sparkContextval rdd = sc.textFile("D:\\aa.txt")val mapRDD= rdd.map(line=>Row(line.split(" ")(0),line.split(" ")(1)))val sf1=new StructField("ip",StringType,true) //这⾥是列1 信息是 IPval sf2=new StructField("user",StringType,true) //这⾥是列2 信息是userval table_sch=new StructType(Array(sf1,sf2)) //⽣成表结构 , 由两列叫IP和user的列组成的表 ,可以为空val df=ss.createDataFrame(mapRDD,table_sch) //⽤mapRDD的分列数据去映射到结构表⾥⾯,⽣成具有列信息的表df.createTempView("cyber") //创建视图 cyberss.sql("select * from cyber").show() //打印视图(表)println("执⾏完毕")}}运⾏结果PS:我在D:\\aa.txt ⽬录下新建了⽂本⽂档 , 组合⽅式为 IP+ 空格 +⽤户名------------恢复内容结束------------。
收稿日期:2023-02-19ꎮ作者简介:张冬(1999 )ꎬ男ꎬ硕士生ꎬ研究方向为大数据处理㊁企业管理信息化ꎮ㊀∗通信作者:刘旭波(1971 )ꎬ男ꎬ副教授ꎬ博士ꎬ研究方向为机械制造装备设计㊁机床数控技术ꎮE ̄mail:liuxubo@ncu.edu.cnꎮ张冬ꎬ刘旭波.基于大数据的产品开发管理系统的设计与实现[J].南昌大学学报(工科版)ꎬ2023ꎬ45(4):399-403.ZHANGDꎬLIUXB.Designandimplementationofproductdevelopmentmanagementsystembasedonbigdata[J].JournalofNanchangUniversity(Engineering&Technology)ꎬ2023ꎬ45(4):399-403.基于大数据的产品开发管理系统的设计与实现张冬ꎬ刘旭波∗(南昌大学先进制造学院ꎬ江西南昌330031)㊀㊀摘要:针对制造业产品开发数据多源异构的特点以及产品开发各阶段数据不及时流通的问题ꎬ分析了大数据技术在产品开发管理系统上的应用ꎬ研究并设计了基于大数据的产品开发管理系统ꎮ通过大数据技术采集和分析产品设计研发数据㊁生产制造数据㊁产品质量数据ꎬ并采用模糊层次法对产品开发设计方案进行评价ꎬ为产品开发设计方案优化提供数据支撑ꎮ通过多模块开发实现对系统管理㊁产品开发管理和产品设计方案评价的集成ꎬ对提高产品开发效率具有一定的借鉴意义ꎮ关键词:大数据技术ꎻ产品开发管理系统ꎻ模糊层次评价ꎻ制造业中图分类号:TP393.09㊀㊀㊀㊀文献标志码:A㊀㊀㊀㊀文章编号:1006-0456(2023)04-0399-05DesignandimplementationofproductdevelopmentmanagementsystembasedonbigdataZHANGDongꎬLIUXubo∗(SchoolofAdvancedManufacturingꎬNanchangUniversityꎬNanchang330031ꎬChina)Abstract:Inviewofthecharacteristicsofmulti ̄sourceheterogeneousproductdevelopmentdataandtheproblemthatthedataineachstageofproductdevelopmentdoesnotcirculateintimeꎬtheapplicationofbigdatatechnologyinproductdevelopmentmanagementsystemwasanalyzedꎬandaproductdevelopmentmanagementsystembasedonbigdatawasresearchedanddesigned.Bigdatatechnolo ̄gywasusedtocollectandanalyzeproductdesignanddevelopmentdataꎬmanufacturingdataandproductqualitydataꎬandfuzzyhierar ̄chicalmethodwasadoptedtoevaluateproductdevelopmentanddesignschemesꎬprovidingdatasupportforproductdevelopmentandde ̄signschemeoptimization.Theintegrationofsystemmanagementꎬproductdevelopmentmanagementandproductdesignschemeevalua ̄tionwasrealizedthroughmulti ̄moduledevelopment.KeyWords:bigdatatechnologyꎻproductdevelopmentmanagementsystemꎻfuzzyhierarchyevaluationꎻmanufacturing㊀㊀随着大数据技术与新一代信息技术的发展ꎬ全球制造业都面临着新的挑战与机遇ꎮ从国家层面ꎬ2015年ꎬ我国提出要搭建智能制造平台[1]ꎻ2020年ꎬ中央深改委提出要加快提升制造业数字化㊁智能化水平[2]ꎮ从市场方面ꎬ全球每天产生的数据量已经超过了1000亿GBꎬ国际数据公司预计到2025年全球数据规模将达到175ZBꎬ其中制造业数据所占比例远超其他行业ꎮ调查显示ꎬ越来越多的制造企业也愿意采取大数据技术来指导产品的设计研发[3]ꎮ因此ꎬ不管是从国家的政策还是企业内部寻求发展转型ꎬ制造业数据化㊁智能化都不可避免ꎮ随着制造业智能化㊁信息化的不断发展ꎬ各类工业传感器和各种信息系统的应用ꎬ产品开发过程中产生的数据也越来越多[4]ꎮ如制造执行系统(man ̄ufacturingexecutionsystemꎬMES)产生大量不同结构类型的生产数据ꎬ产品质量信息系统产生的产品质量数据ꎮ这些海量的数据中隐藏着许多对产品开发有价值的信息ꎬ可以驱动企业管理以及帮助设计师在产品设计研发时做出正确的决策[5]ꎮ在智能制造的大环境下ꎬ将大数据技术与产品开发管理系统相结合ꎬ实现了产品开发全生命周期数据的管理和分析ꎬ提高了产品开发的效率ꎮ第45卷第4期2023年12月㊀㊀㊀㊀㊀㊀南昌大学学报(工科版)JournalofNanchangUniversity(Engineering&Technology)Vol.45No.4Dec.2023㊀1㊀需求分析㊀㊀产品的开发流程主要有设计研发㊁生产制造㊁质量检测等ꎬ每个流程产生的数据都具有来源多样㊁实时性高㊁数据信息复杂的特点[6]ꎮ各个流程数据特点如表1所示ꎮ要想从这些来源不同㊁结构不同的数据中发现对产品开发有用的数据ꎬ就需要对这些数据进行综合研究[7]ꎬ即对多源异构数据的处理ꎮ传统的关系型数据库是按照结构化的方法来存储数据的ꎬ不能满足非结构化数据的存储要求ꎬ并且产品开发过程中的许多数据具有很高的时效性ꎬ因此需要使用大数据的数据库组件进行存储ꎮ表1㊀产品开发各阶段数据特点Tab.1㊀Datacharacteristicsofeachstageofproductdevelopment开发阶段数据来源数据内容数据类型设计研发CAD集成㊁人工上传功能需求㊁调研报告等设计图纸㊁工艺流程图等结构化㊀非结构化生产制造生产制造系统制造人员信息㊁产品数量等设备状态㊁材料报表等结构化㊀非结构化质量检测产品质量信息系统质检人㊁质检时间等产品磨损状态㊁维修状况等结构化㊀非结构化目前在制造业应用的信息系统大多是独立的ꎬ各个系统都有自己的数据库以及存储格式ꎬ因此不能对整个产品生命周期的数据进行共享分析ꎬ导致生产制造系统㊁产品质量信息系统等系统的数据不能有效指导产品的设计研发ꎮ同时ꎬ产品开发的设计方案如何进行优化也不能通过数据分析得到反馈ꎮ因此ꎬ要想提高产品研发效率㊁优化成本ꎬ就需要对产品整个生命周期的大数据进行管理分析ꎬ从而作出正确的决策ꎮ基于大数据的产品开发管理系统针对目前存在的问题可满足以下需求:1)满足产品开发过程中全生命周期各类数据的采集分类存储ꎮ2)完成对产品生产制造数据和产品质量数据的分析处理ꎬ优化产品的设计研发ꎮ3)实现产品开发数据的图形展示ꎮ4)拥有完善的权限管理机制ꎬ帮助加强企业管理ꎮ5)产品设计开发方案的评价ꎮ2㊀系统设计2.1㊀系统架构设计基于大数据的产品开发管理系统的大数据架构分为4层ꎬ分别为数据采集层㊁数据存储层㊁数据分析层和应用层ꎮ基于大数据的系统架构如图1所示ꎮZooKeeper图1㊀基于大数据的系统架构图Fig.1㊀Systemarchitecturediagram㊀㊀1)数据采集层ꎮ产品生命周期各个环节数据的采集是实现系统功能的前提[8]ꎮ产品开发大数据主要有历史数据和实时数据2种ꎮ实时数据一般是生产制造系统中的数据ꎬ当实时数据导入系统时可能会产生数据堆积ꎬ所以采用Kafka来进行数据缓存ꎮ该系统通过API接口实现生产制造系统㊁产品质量信息系统数据的导入ꎮ关系型数据库MySql中的数据则通过Sqoop与本系统完成数据的相互转移ꎮ产品设计图纸则通过CAD的集成人工进行上传ꎮ2)数据存储层ꎮ数据存储层主要是完成对产品开发全生命周期004 南昌大学学报(工科版)2023年㊀的不同类型数据的多级别存储ꎬ尤其是产品生产制造数据的存储[9]ꎮHDFS文件系统作为系统的底层存储ꎬ实现对结构化和非结构化数据的分布式存储ꎬ采用NoSql数据库HBase和Hive数据仓库实现对各种类型数据的管理ꎮ系统日志㊁人员信息等数据则采用关系型数据库MySql进行存储ꎮ3)数据分析层ꎮ数据分析层用于完成对产品全生命周期数据的分析处理和数据挖掘ꎬ以此指导产品的设计研发ꎮ制造业的数据挖掘已经在航空航天方面得到应用[10]ꎮ数据处理大致分为2类:一类是对数据的批处理ꎬ采用MapReduce框架计算ꎻ一类是数据流处理ꎬ采用Spark框架计算ꎮ数据的分析汇总主要通过MapReduce的检索查询实现ꎬSpark框架主要为聚类分析㊁关联分析等算法应用提供计算ꎬ实现产品设计的优化和成本优化ꎮ4)应用层ꎮ大数据技术在制造业领域已经有着多方面的应用[11]ꎬ本文设计的应用层为基于Vue框架开发的Web平台ꎬ用于实现产品设计开发的功能ꎮ产品开发每个流程的审批㊁设计图纸的上传下载以及经过分析层处理后产品数据的展示等功能都是在应用层得到体现ꎮ2.2㊀系统功能设计2.2.1㊀系统管理功能设计本系统采用JWT(JSONwebtoken)来实现用户的登录认证ꎬJWT是一种基于Token的认证授权机制ꎬ安全性更高ꎮ权限设计采用的是业界主流的RBAC(role ̄basedaccesscontrol)模型ꎬ通过给用户角色授予相关的权限ꎬ实现用户的权限管理ꎮ2.2.2㊀产品开发功能设计产品开发是一个流程复杂且需要多人参与的工作ꎬ主要分为策划阶段和设计阶段ꎮ策划阶段包括市场调研㊁可行性分析㊁项目立项㊁任务分组和项目计划制定5个部分ꎮ设计阶段分为总体方案设计㊁零部件设计㊁工艺设计㊁工装设计4个部分ꎮ每个阶段都需要经过相关人员审批后ꎬ才能进入下一个阶段ꎮ产品开发设计的流程如图2所示ꎮ否是否是否是是否图2㊀产品开发设计流程图Fig.2㊀Productdevelopmentanddesignflowchart2.2.3㊀产品设计开发方案评价设计只有经过对产品全生命周期数据的分析验证ꎬ才能发现产品设计方案的优缺点ꎬ进而根据需求作出优化ꎮ本系统通过采集获取产品试制阶段在生产制造系统和产品质量信息系统的数据ꎬ经过聚类分析得到评价指标数据[12]ꎬ并采用模糊层次分析法对产品设计研发方案进行评价ꎮ模糊层次分析法即模糊评价与层次分析法的结合ꎬ已有相关学者对其进行研究应用[13-14]ꎮ假如从n维角度对产品设计方案进行综合评价ꎬ产品设计研发方案可表示为:G=f(X1ꎬX2ꎬ ꎬXnꎬt)ꎮ其中ꎬG为设计方案ꎬf是关于X1ꎬX2ꎬ ꎬXn和t的函数ꎬXi为关于设计方案的第i维度的属性值ꎬt是时间维度ꎮ具体的评价过程如下:1)建立评价因素集ꎮ将产品设计方案所有的评价指标放在一个集合中ꎮ用公式表示为U={u1ꎬu2ꎬ ꎬuiꎬ ꎬun}式中:ui(i=1ꎬ2ꎬ ꎬn)为第i个评价指标ꎮ2)基于评价集ꎬ依次对产品设计方案的各评价因素ui进行量化ꎬ得出模糊关系矩阵RꎮR=r11r12 r1mr21r22 r2m⋮⋮⋮⋮rn1rn2 rnméëêêêêêùûúúúúú㊀㊀3)建立评价指标的权重集ꎮ对各指标因素ui赋予对应的权数aiꎬ进而进行归一化处理:104第4期㊀㊀㊀㊀㊀张冬等:基于大数据的产品开发管理系统的设计与实现ðni=1ai=1ꎬaiȡ0(i=1ꎬ2ꎬ ꎬn)A=(a1ꎬa2ꎬ ꎬan)㊀㊀4)进行模糊层次综合评价ꎮR矩阵中的每一行代表着评价方案的各种单一因素对处于不同层次的模糊子集的相关隶属度ꎮ那么综合评价B可表示为:B=AR=(a1ꎬa2ꎬ ꎬan)r11r12 r1mr21r22 r2n⋮⋮⋮⋮rn1rn2rnméëêêêêêêùûúúúúúú=(b1ꎬb2ꎬ ꎬbjꎬ ꎬbn)式中:bj表示从整体上看评价对象对不同层次的模糊层次评价子集的隶属程度ꎬj=1ꎬ2ꎬ ꎬmꎮ5)对模糊层次综合评价结果的分析ꎮ将评价对象的每一个糊层次综合评价结果都视为一个模糊向量ꎬ最终结果就包含了评价完整的信息ꎮ然后对不同层次的综合评价权重进行排序ꎮ3㊀关键技术及系统实现3.1㊀关键技术分析3.1.1㊀NoSQL数据库HBaseHBase是一个非关系型的分布式数据库ꎮ它是Google公司BigTable的开源实现ꎬ主要用来存储异构数据ꎬ采用的是key ̄value数据模型ꎮHBase在Hadoop生态体系中是通过其他组件为其提供服务的ꎬ例如HBase利用ZooKeeper来分配数据库资源ꎮHBase的结构图如图3所示ꎮZooKe eperRegionRegionRegionRegion Region Region Region server Region server Region server HDFSHMasterClient图3㊀HBase结构图Fig.3㊀HBasestructurediagram3.1.2㊀Spark计算框架Spark是一种通用㊁快速㊁专门处理大规模数据的计算框架ꎮ它是为了解决大数据领域的各种计算要求而被设计出来ꎮSpark不仅具有Hadoop框架下MapReduce的优点ꎬ而且还具有能够进行交互式查询和优化迭代工作负载的优点ꎬSpark是基于内存的计算框架ꎬ不提供存储的功能ꎬ只涉及到计算ꎬ因此计算速度非常快[15]ꎮSpark具有4个核心组件ꎬ如图4所示ꎬ用于满足不同计算要求ꎮ图4㊀Spark核心组件Fig.4㊀SparkcorecomponentSparkSQL主要用于结构化数据的处理ꎮSparkStreaming主要用于快速构建高吞吐量㊁高容错的流处理程序ꎮMLlib是Spark的机器学习库ꎬ提供了多种算法和模型ꎮGraphx主要用于图形计算ꎮ3.2㊀大数据平台搭建本系统使用3台服务器搭建集群ꎬ其中1台为主节点ꎬ其他2台为从节点ꎮ在搭建集群之前已经根据系统需求确定了集群模式方案ꎬ明确使用哪些组件ꎬ使集群能够更有效地运行ꎮ具体的集群搭建方案如表2所示ꎮ表2㊀大数据集群搭建方案Tab.2㊀Bigdataclusterconstructionscheme类型组件主机Zd001(192.168.88.100)Zd002(192.168.88.101)Zd003(192.168.88.102)HDFS框架NameNode是否否SecondaryNameNode否是否DataNode是是是Yarn框架ResourceManager是否否NodeManager是是是HBaseHMaster是否否HRegionServer是是是Sqoop是否否Spark是否否Hive是否否MySQL是否否Kafka是是是ZooKeeper是是是3.3㊀主要功能实现3.3.1㊀产品开发功能实现用户经过系统身份验证后ꎬ进入功能主页面ꎮ身份权限不同ꎬ能够操作的页面也不相同ꎮ系统主要的产品开发功能模块有项目立项㊁总体设计㊁零部204 南昌大学学报(工科版)2023年㊀件设计㊁工艺设计㊁工装设计和项目管理6个子模块ꎮ项目立项子模块显示的是项目准备阶段的功能页面ꎬ具有市场调研报告㊁可行性分析报告的上传下载ꎬ项目审批状态的显示等功能ꎮ项目管理子模块是对历史项目的汇总ꎮ其他4个模块是设计阶段的功能显示ꎬ总体设计㊁零部件设计㊁工艺设计㊁工装设计每个流程对应一个子模块ꎬ产品在该阶段的具体信息以及该阶段的审批进度都会在对应页面显示ꎬ并提供查询㊁下载等功能ꎮ图5为零部件设计的界面图ꎮ审核时间审核者审核状态提交时间零件图纸零件数量零件名称滚动轴承联轴器离合器轴2113查看下载查看下载查看下载查看下载2022-09-072021-09-022020-03-022019-03-13未审核审核中审核通过审核通过张三钱大富张三张冬2022-09-072021-09-132020-03-122019-03-30图5㊀零部件设计界面图Fig.5㊀Partsdesigninterfacediagram3.3.2㊀产品设计研发方案评价产品设计研发方案评价是基于大数据技术完成的ꎬ将分析计算后的指标数据注入模糊层次模型ꎬ得到产品设计方案的评分ꎬ进而对产品设计方案作出优化ꎬ评价结果是不能人为修改ꎮ产品设计研发方案具体评价指标如表3所示ꎮ表3㊀产品设计方案评价指标Tab.3㊀Productdesignschemeevaluationindex二级指标二级指标权重三级㊀㊀指标㊀㊀三级指标权重总权重成本指标0.35材料成本生产成本使用寿命㊀0.400㊀0.600㊀0.200㊀0.14㊀0.21㊀0.09质量指标0.45可靠程度产品性能加工精度㊀0.300㊀0.500㊀0.300㊀0.20㊀0.30㊀0.20工艺指标0.20加工时间材料利用率装配适用度㊀0.135㊀0.225㊀0.060㊀0.04㊀0.06㊀0.044㊀结语㊀㊀本文针对产品开发管理系统存在的问题ꎬ研究并设计了基于大数据的产品开发管理系统ꎬ系统以产品开发的全生命周期数据为出发点ꎬ围绕产品开发设计㊁分析㊁管理㊁优化等需求ꎬ构建了集系统管理㊁产品开发设计管理㊁产品设计方案评价于一体的产品开发管理系统ꎬ通过大数据技术实现对产品开发全生命周期各类数据的存储分析ꎬ优化了产品开发设计流程ꎬ提高了产品开发的效率ꎮ参考文献:[1]㊀周济.智能制造 中国制造2025 的主攻方向[J].中国机械工程ꎬ2015ꎬ26(17):2273-2284.[2]新华社.中央深改委审议通过«关于深化新一代信息技术与制造业融合发展的指导意见»[J].互联网天地ꎬ2020(7):6-7.[3]相征ꎬ王春玉ꎬ李煜华.行业发展过程中制造企业对大数据技术采纳意愿影响研究[J].哈尔滨商业大学学报(社会科学版)ꎬ2020(6):106-119.[4]韩栋梁ꎬ贺霄琛.装备制造企业数字化平台设计与实现[J].电子工业专用设备ꎬ2022ꎬ51(2):10-13.[5]徐宗本ꎬ冯芷艳ꎬ郭迅华ꎬ等.大数据驱动的管理与决策前沿课题[J].管理世界ꎬ2014(11):158-163.[6]陈世超ꎬ崔春雨ꎬ张华ꎬ等.制造业生产过程中多源异构数据处理方法综述[J].大数据ꎬ2020ꎬ6(5):55-81.[7]BIRNEYE.ThemakingofENCODE:lessonsforbig ̄dataprojects[J].Natureꎬ2012ꎬ489(7414):49-51.[8]刘欣ꎬ李向东ꎬ耿立校ꎬ等.工业互联网环境下的工业大数据采集与应用[J].物联网技术ꎬ2021ꎬ11(8):62-65.[9]孙云.面向生产过程管控的数据建模㊁集成及存储技术研究[D].成都:西南交通大学ꎬ2021.[10]荣佑珍ꎬ刘仁培ꎬ魏艳红.航空专用焊接数据库及专家系统[J].航空制造技术ꎬ2017(12):43-47.[11]周驰.大数据在工业制造业的应用与研究[J].数字通信世界ꎬ2019(8):224.[12]郑继刚.数据挖掘及其应用研究[M].昆明:云南大学出版社ꎬ2014.[13]吴爱强ꎬ汪永超ꎬ李波.面向绿色制造的机械结构设计方案选择[J].组合机床与自动化加工技术ꎬ2019(10):15-19.[14]ZHAOYFꎬLIJRꎬYINGXZ.Studyonriskoflong ̄steepdowngradesectionsofexpresswaysbasedonafuzzyhier ̄archycomprehensiveevaluation[J].AppliedSciencesꎬ2022ꎬ12(12):5924.[15]AHMEDNꎬBARCZAKALCꎬSUSNJAKTꎬetal.Acom ̄prehensiveperformanceanalysisofApacheHadoopandApacheSparkforlargescaledatasetsusingHiBench[J].JournalofBigDataꎬ2020ꎬ7(1):1-18.304 第4期㊀㊀㊀㊀㊀张冬等:基于大数据的产品开发管理系统的设计与实现。
Spark大数据技术与应用智慧树知到课后章节答案2023年下山西职业技术学院山西职业技术学院绪论单元测试1.大数据的起源是以下哪个领域()A:互联网 B:金融 C:公共管理 D:电信答案:互联网第一章测试1.与MapReduce相比,Spark更适合处理以下哪种类型的任务()A:较少迭代次数的长任务 B:较少迭代次数的短任务 C:较多迭代次数的短任务 D:较多迭代次数的长任务答案:较多迭代次数的短任务2.Standalone模式下配置Spark集群时,master节点的工作端口号需要在conf文件夹下的哪个文件指明()A:regionserver B:slaves C:spark-defaults.conf D:spark-env.sh答案:spark-env.sh3.以下关于SPARK中的spark context,描述错误的是:()A:可以控制dagsheduler组件 B:可以控制task scheduler组件 C:控制整个application的生命周期 D:SparkContext为Spark的主要入口点答案:控制整个application的生命周期4.以下对Spark中Work的主要工作描述错误的是()A:不会运行业务逻辑代码 B:会运行业务逻辑代码 C:管理当前节点内存 D:接收master分配过来的资源指令答案:会运行业务逻辑代码5.配置Standalone模式下的Spark集群,Worker节点需要在conf文件夹下的哪个文件中指明()A:spark-env.sh B:spark-defaults.conf C:slaves D:regionserver答案:slaves6.Spark支持的分布式部署方式中哪个是错误的()A:Spark on local B:spark on YARN C:spark on mesos D:standalone答案:Spark on local7.Spark单机伪分布式模式,它的特点是在一台节点上既有Master服务,又有Worker服务()A:对 B:错答案:对8.在部署Spark独立模式时,配置spark内部通信的端口为()A:16010 B:7070 C:9870 D:7077答案:70779.在部署Spark独立模式时,配置spark的web端口为()A:7077 B:8080 C:9870 D:4040答案:707710.Spark的bin目录是spark运行脚本目录,该目录中包含了加载spark的配置信息,提交作业等执行命令的脚本()A:错 B:对答案:对第二章测试1.valrdd=sc.parallelize(1 to 10).filter(_%2== 0)rdd.collect上述代码的执行结果为()A:Array(1, 3, 5,7,9) B:Array(2, 4, 6, 8, 10) C:Array(1,2,3,4,5,6,7,8,9,10)D:Array(1,10)答案:Array(2, 4, 6, 8, 10)2.下面哪个操作是窄依赖()A:filter B:sort C:group D:join答案:filter3.下面哪个操作肯定是宽依赖()A:map B:sample C:flatMap D:reduceByKey答案:reduceByKey4.以下操作中,哪个不是Spark RDD编程中的操作。
Spark大数据处理框架入门与实践概述Spark是现今最流行的大数据处理框架之一,它可以处理多种类型的数据,包括结构化数据、半结构化数据、非结构化数据、日志数据等。
本文将介绍Spark的基本概念与使用方法,并通过实际案例帮助读者快速掌握Spark大数据处理框架。
Spark的基本概念Spark是一种基于内存的分布式计算框架,可以将数据分布在多个节点上进行计算,从而提高计算效率。
Spark的核心理念是弹性分布式数据集(Resilient Distributed Dataset,简称RDD),它是一种分布式的元素集合,通过分布式群集实现高效计算。
RDD 分为两种类型:Spark的高级API中,基于RDD构建的应用程序称为Spark Core。
Spark的优势Speed:Spark使用内存计算,因此速度要比Hadoop快。
Ease of Use:Spark的API非常友好,许多用户花费很短的时间在上手Spark上。
Unified Engine:Spark的统一计算引擎可以处理多个任务,包括批量处理、流处理等。
Real-time stream processing:Spark有流计算框架Spark Streaming,可以进行流处理。
安装Spark安装Java环境下载Spark启动SparkSpark的实践在下面的实践中,我们将从实际的案例开始使用Spark构建项目。
案例描述我们将使用Spark来分析一份数据,该数据是储格拉斯选举数据,包括每个区域的投票情况和每个候选人得票情况。
步骤1:数据探索我们先下载数据并使用Spark来分析。
下载数据分析数据在Spark中,数据可以从多种来源读取,例如HDFS、S3、HTTP等。
对于我们的数据,我们可以使用以下代码从文件中读取。
在将数据读取到Spark中之后,我们可以使用一些API来处理数据。
下面是一些示例代码,用于清理数据并返回有关储格拉斯选举的一些统计信息。
步骤2:数据处理在数据探索之后,我们需要进一步处理数据。
大数据产业数据挖掘与分析应用解决方案第1章大数据概述 (3)1.1 大数据概念与特征 (3)1.1.1 概念定义 (3)1.1.2 数据特征 (4)1.2 大数据应用领域与发展趋势 (4)1.2.1 应用领域 (4)1.2.2 发展趋势 (4)第2章数据挖掘技术基础 (5)2.1 数据挖掘的定义与任务 (5)2.2 数据挖掘的主要方法与技术 (5)2.3 数据挖掘流程与模型评估 (6)第3章数据预处理技术 (6)3.1 数据清洗与数据集成 (6)3.1.1 数据清洗 (6)3.1.2 数据集成 (7)3.2 数据变换与数据规约 (7)3.2.1 数据变换 (7)3.2.2 数据规约 (7)第4章数据挖掘算法与应用 (7)4.1 分类算法与应用 (7)4.1.1 分类算法概述 (7)4.1.2 分类算法应用 (7)4.1.2.1 金融行业 (7)4.1.2.2 医疗行业 (8)4.1.2.3 电商行业 (8)4.2 聚类算法与应用 (8)4.2.1 聚类算法概述 (8)4.2.2 聚类算法应用 (8)4.2.2.1 市场细分 (8)4.2.2.2 图像处理 (8)4.2.2.3 社交网络分析 (8)4.3 关联规则挖掘算法与应用 (8)4.3.1 关联规则挖掘算法概述 (8)4.3.2 关联规则挖掘应用 (9)4.3.2.1 电商购物篮分析 (9)4.3.2.2 电信行业 (9)4.3.2.3 医疗诊断 (9)第5章大数据挖掘平台与工具 (9)5.1 Hadoop生态系统 (9)5.1.1 Hadoop概述 (9)5.1.2 Hadoop核心组件 (9)5.1.3 Hadoop生态系统中的工具与组件 (9)5.2 Spark计算框架 (10)5.2.1 Spark概述 (10)5.2.2 Spark核心特性 (10)5.2.3 Spark生态系统中的工具与库 (10)5.3 Flink实时计算框架 (10)5.3.1 Flink概述 (10)5.3.2 Flink核心特性 (10)5.3.3 Flink生态系统中的工具与组件 (10)第6章产业大数据挖掘与分析 (11)6.1 互联网行业大数据挖掘与分析 (11)6.1.1 市场趋势分析 (11)6.1.2 用户画像构建 (11)6.1.3 网络安全分析 (11)6.2 金融行业大数据挖掘与分析 (11)6.2.1 客户信用评估 (11)6.2.2 智能投顾 (11)6.2.3 反洗钱与反欺诈 (11)6.3 医疗行业大数据挖掘与分析 (11)6.3.1 疾病预测与预防 (11)6.3.2 精准医疗 (11)6.3.3 医疗资源优化配置 (11)第7章大数据可视化技术 (12)7.1 数据可视化基础 (12)7.1.1 可视化概述 (12)7.1.2 可视化设计原则 (12)7.1.3 数据可视化类型 (12)7.2 大数据可视化工具与平台 (12)7.2.1 常用可视化工具 (12)7.2.2 可视化平台架构 (12)7.2.3 可视化技术发展趋势 (12)7.3 大数据可视化应用案例 (12)7.3.1 金融行业 (12)7.3.2 医疗行业 (13)7.3.3 电商行业 (13)7.3.4 智能交通 (13)7.3.5 能源行业 (13)第8章大数据安全与隐私保护 (13)8.1 数据安全与隐私保护概述 (13)8.1.1 数据安全与隐私保护的重要性 (13)8.1.2 大数据环境下的安全挑战 (13)8.1.3 法律法规与伦理标准 (13)8.2 数据加密与安全存储技术 (13)8.2.1 数据加密算法 (13)8.2.2 安全存储技术 (13)8.2.3 大数据环境下的加密与存储技术应用 (13)8.3 数据脱敏与隐私保护技术 (13)8.3.1 数据脱敏技术 (14)8.3.2 隐私保护策略与模型 (14)8.3.3 大数据环境下的脱敏与隐私保护技术应用 (14)第9章大数据挖掘在营销领域的应用 (14)9.1 客户细分与客户价值分析 (14)9.1.1 客户细分方法 (14)9.1.2 客户价值分析 (14)9.1.3 客户细分与价值分析在营销策略中的应用 (14)9.2 营销策略优化与推荐系统 (14)9.2.1 数据驱动的营销策略优化 (14)9.2.2 推荐系统在营销中的应用 (14)9.2.3 营销推荐系统实践案例 (15)9.3 营销活动效果评估与监控 (15)9.3.1 营销活动效果评估指标 (15)9.3.2 营销活动效果评估方法 (15)9.3.3 营销活动实时监控与调整 (15)第10章大数据挖掘在教育领域的应用 (15)10.1 教育数据挖掘与学习分析 (15)10.1.1 教育数据挖掘基本概念与方法 (15)10.1.2 学习分析基本概念与方法 (15)10.1.3 教育数据挖掘与学习分析在教育领域的应用案例 (16)10.2 个性化学习推荐系统 (16)10.2.1 个性化学习推荐系统架构 (16)10.2.2 常用推荐算法及其在教育领域的应用 (16)10.2.3 个性化学习推荐系统在实际应用中的挑战与展望 (16)10.3 教育教学质量评估与优化 (16)10.3.1 教育教学质量评估指标体系构建 (16)10.3.2 教育教学质量评估方法 (16)10.3.3 教育教学质量优化策略 (16)10.4 大数据在教育决策支持中的应用展望 (16)10.4.1 教育决策支持系统概述 (17)10.4.2 大数据在教育决策支持中的应用场景 (17)10.4.3 大数据教育决策支持的未来发展趋势 (17)第1章大数据概述1.1 大数据概念与特征1.1.1 概念定义大数据,顾名思义,是指规模巨大、多样性、高速增长的数据集合。
Spark学习之SparkSQLSpark SQL⼀、Spark SQL基础1、Spark SQL简介Spark SQL是Spark⽤来处理结构化数据的⼀个模块,它提供了⼀个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作⽤。
为什么要学习Spark SQL?我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执⾏,⼤⼤简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执⾏效率⽐较慢。
所以Spark SQL的应运⽽⽣,它是将Spark SQL转换成RDD,然后提交到集群执⾏,执⾏效率⾮常快!同时Spark SQL也⽀持从Hive中读取数据。
Spark SQL的特点:1.容易整合(集成)2.统⼀的数据访问⽅式3.兼容Hive4.标准的数据连接2、基本概念:Datasets和DataFrames DataFrame DataFrame是组织成命名列的数据集。
它在概念上等同于关系数据库中的表,但在底层具有更丰富的优化。
DataFrames可以从各种来源构建,例如: 结构化数据⽂件 hive中的表 外部数据库或现有RDDsDataFrame API⽀持的语⾔有Scala,Java,Python和R。
从上图可以看出,DataFrame多了数据的结构信息,即schema。
RDD是分布式的 Java对象的集合。
DataFrame是分布式的Row对象的集合。
DataFrame除了提供了⽐RDD更丰富的算⼦以外,更重要的特点是提升执⾏效率、减少数据读取以及执⾏计划的优化 Datasets Dataset是数据的分布式集合。
Dataset是在Spark 1.6中添加的⼀个新接⼝,是DataFrame之上更⾼⼀级的抽象。
它提供了RDD的优点(强类型化,使⽤强⼤的lambda函数的能⼒)以及Spark SQL优化后的执⾏引擎的优点。
⼀个Dataset 可以从JVM对象构造,然后使⽤函数转换(map, flatMap,filter等)去操作。
spark sql语法SparkSQL是ApacheSpark的一个模块,它允许用户以类SQL的方式查询和处理数据。
它允许用户使用类SQL查询语言并将结果作为Spark Dataset(RDD的类型)返回。
Spark SQL的一个主要目的是提供一种方式来查询,处理和操纵结构化数据。
它支持与常见的结构化数据源(如Hive、Parquet 和JSON)的交互,并且可以使用简单的多表查询语句作为输入。
Spark SQL提供了一组基本的查询语句,包括SELECT,INSERT,UPDATE和DELETE外,还提供了一些额外的查询语法,以支持复杂的查询需求,例如UNION,INTERSECT,MINUS和EXCEPT,以及窗口函数,CASE表达式,子查询和等等。
此外,它还允许用户使用不同的API进行查询,例如Spark SQL的DataFrame API。
DataFrame是一个带有列和行的分布式集合,可以被Spark SQL用于以SQL方式处理数据。
DataFrame可以从Hive表、Parquet文件中创建,也可以从RDD中加载数据。
它的API支持字段名的访问,并允许用户对分布式数据集进行聚合操作,例如在行级别或列级别运行聚集函数。
另一方面,Spark SQL还允许用户使用HiveQL来查询数据,HiveQL是一种类SQL的查询语言,用于从存储在Hive中的结构化数据中提取数据。
Spark SQL支持使用HiveQL,以便用户可以使用熟悉的HiveQL查询来执行查询操作,而无需学习新的查询语言。
此外,Spark SQL还支持丰富的数据类型,包括整数,浮点数,字符串,日期类型,布尔类型,二进制类型等等。
它还支持列编程,允许用户编写基于列的查询。
另外,Spark SQL还支持自定义函数(UDF),这样用户就可以使用自己开发的函数来处理和分析数据。
总而言之,Spark SQL是一种用于在结构化数据中进行查询,处理和操作的灵活的语言。