版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Spark應(yīng)用開發(fā)技術(shù)本章主要講述SparkGraphX:圖計(jì)算框架。通過(guò)學(xué)習(xí)本節(jié)將能夠?qū)W習(xí)SparkGraphX:圖計(jì)算框架。通過(guò)本節(jié)學(xué)習(xí)可以:理解圖與圖計(jì)算的基本概念掌握GraphX圖的創(chuàng)建方法掌握GraphX的基本操作掌握以GraphX進(jìn)行關(guān)聯(lián)聚合操作認(rèn)識(shí)SparkGraphX圖的基本概念、圖計(jì)算的應(yīng)用、GraphX的基礎(chǔ)概念、GraphX的發(fā)展了解GraphX常用API圖的創(chuàng)建與存儲(chǔ)、數(shù)據(jù)查詢與數(shù)據(jù)轉(zhuǎn)換、結(jié)構(gòu)轉(zhuǎn)換與關(guān)聯(lián)聚合構(gòu)建信任網(wǎng)絡(luò)并找出目標(biāo)用戶構(gòu)建網(wǎng)站信任網(wǎng)絡(luò)、找出需要支付稿酬的用戶、找出進(jìn)入熱門榜的用戶1.圖創(chuàng)建與存儲(chǔ)Edge:邊對(duì)象,存有srcId,dstId,attr三個(gè)字段,以及一些操作Edge的方法,例:Edge(srcId,dstId,attr)RDD[Edge]:存放著Edge對(duì)象的RDDEdgeRDD:完整提供邊的各種操作類RDD[(VertexId,VD)]:存放頂點(diǎn)的RDD,頂點(diǎn)有VertexId和VD兩個(gè)字段,第一個(gè)是頂點(diǎn)Id,第二個(gè)是頂點(diǎn)屬性。定義一個(gè)頂點(diǎn)例如:(VertexId,VD)VertexRDD:提供頂點(diǎn)的各種操作方法的對(duì)象了解GraphX常用API1.圖創(chuàng)建與存儲(chǔ)
圖的創(chuàng)建是進(jìn)行圖計(jì)算的重要步驟,在SparkGraphX中創(chuàng)建圖的方式很多,根據(jù)不同的數(shù)據(jù)集有不同的方法。GraphX有一個(gè)類Graph,Graph對(duì)象是用戶的操作入口,主要包含邊屬性edge(邊)、頂點(diǎn)屬性vertex(頂點(diǎn))、圖的創(chuàng)建方法、查詢方法和其他轉(zhuǎn)換方法等。其中Graph類中圖的創(chuàng)建方法主要有3種,適用于不同類型的輸入數(shù)據(jù)。了解GraphX常用API1.圖創(chuàng)建與存儲(chǔ)了解GraphX常用API用戶信息vertices.txt,有3個(gè)字段,分別為用戶Id,姓名和職業(yè)另一份數(shù)據(jù)“edges.txt”是用戶之間的關(guān)系數(shù)據(jù),有3個(gè)字段,第1、2個(gè)是用戶Id,第3個(gè)是第1個(gè)用戶對(duì)于第2個(gè)用戶的關(guān)系,如“37Collaborator”表示3是7的合作伙伴。根據(jù)頂點(diǎn)數(shù)據(jù)和邊數(shù)據(jù),可以構(gòu)建如圖所示的用戶關(guān)系網(wǎng)絡(luò)圖,頂點(diǎn)包含用戶Id和用戶屬性,邊有起點(diǎn)和目標(biāo)點(diǎn),并且有邊屬性和指向。1.圖的創(chuàng)建與存儲(chǔ)在使用SparkGraphX進(jìn)行操作時(shí),需要先將指定的包導(dǎo)入了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式一根據(jù)有屬性的頂點(diǎn)和邊構(gòu)建圖(Graph(vertices,edges,defaultVertexAttr))vertices:RDD[(VertexId,VD)]:“頂點(diǎn)”類型的RDD,其中VertexId為頂點(diǎn)ID(必須為L(zhǎng)ong類型),VD為頂點(diǎn)屬性信息。edges:RDD[Edge[ED]]:“邊”類型的RDD,Edge類包含srcId(起點(diǎn),Long類型)、dstId(目標(biāo)點(diǎn),Long類型),attr(邊屬性)三個(gè)部分。defaultVertexAttr:一個(gè)固定的頂點(diǎn)信息,用于當(dāng)數(shù)據(jù)中出現(xiàn)頂點(diǎn)缺失時(shí)使用。了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式一“頂點(diǎn)”和“邊”的RDD來(lái)自不同的數(shù)據(jù)源,與Spark中其他RDD的建立并沒有區(qū)別,但是頂點(diǎn)Id要求是Long類型了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式一查詢創(chuàng)建完成的圖graph_urelate可以用graph_urelate.vertices查看頂點(diǎn)信息,用graph_urelate.edges查看邊信息了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式二根據(jù)邊創(chuàng)建圖(Graph.fromEdges(RDD[Edge[ED]],defaultValue))這種方法相對(duì)而言最為簡(jiǎn)單,只是由Edge類型RDD建立圖,邊的屬性沒有則設(shè)為一個(gè)固定值,由“邊”RDD中出現(xiàn)所有頂點(diǎn)(無(wú)論是起始點(diǎn)src還是目標(biāo)點(diǎn)dst)自動(dòng)產(chǎn)生頂點(diǎn)vertextId,頂點(diǎn)的屬性將被設(shè)置為一個(gè)默認(rèn)值。fromEdges方法有兩個(gè)參數(shù)值如下RDD[Edge[ED]]:“邊”類型的RDD,Edge包含(srcId,dstId,prop)defaultValue:VD:默認(rèn)頂點(diǎn)屬性值。了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式二Graph.fromEdges創(chuàng)建圖只需要邊的數(shù)據(jù)如下代碼所示,僅根據(jù)“edges.txt”中的邊數(shù)據(jù)創(chuàng)建圖,頂點(diǎn)由邊數(shù)據(jù)中出現(xiàn)的頂點(diǎn)決定。了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式二對(duì)圖的頂點(diǎn)和邊進(jìn)行查詢?nèi)鐖D所示,文件中的邊和邊屬性都加載到圖中,頂點(diǎn)則根據(jù)邊的數(shù)據(jù)提取了起點(diǎn)和目標(biāo)點(diǎn)作為頂點(diǎn),頂點(diǎn)屬性默認(rèn)值1了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式三根據(jù)邊的兩個(gè)頂點(diǎn)的元組創(chuàng)建圖(Graph.fromEdgeTuples())Graph.fromEdgeTuples()通過(guò)邊的兩個(gè)頂點(diǎn)ID組成的二元組創(chuàng)建圖,將一條邊的起點(diǎn)與目標(biāo)點(diǎn)放在一個(gè)二元組中,通過(guò)邊的二元組RDD創(chuàng)建圖。rawEdges:RDD[(VertexId,VertexId)]:其中的數(shù)據(jù)類型是一個(gè)起點(diǎn)與目標(biāo)點(diǎn)的元組defaultValue:VD:默認(rèn)屬性值。uniqueEdges:Option[PartitionStrategy]=None:是否對(duì)邊進(jìn)行分區(qū)選項(xiàng),可選可不選,默認(rèn)不分區(qū)了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式三fromEdgeTuples僅需要邊的起點(diǎn)和目標(biāo)點(diǎn),將數(shù)據(jù)“edges.txt”作為輸入數(shù)據(jù),通過(guò)fromEdgeTuples方法構(gòu)造圖了解GraphX常用API1.圖的創(chuàng)建與存儲(chǔ)方式三對(duì)圖的邊和頂點(diǎn)進(jìn)行查詢了解GraphX常用API2.圖的緩存圖的緩存和釋放緩存主要方法如表所示了解GraphX常用API2.圖的緩存在Spark中,RDD默認(rèn)沒有持久化在內(nèi)存中。當(dāng)多次使用某個(gè)變量時(shí),為了避免重復(fù)計(jì)算,變量必須被明確緩存,GraphX中的圖也是相同的方式。當(dāng)一個(gè)圖需要多次計(jì)算使用時(shí),需要對(duì)圖進(jìn)行緩存,緩存有cache和persist兩種方法對(duì)于persist,如果想指定緩存類型為StorageLevel.MEMORY_ONLY,需要導(dǎo)入org.apache.spark.storage.StorageLevel包了解GraphX常用API2.圖的緩存——釋放緩存對(duì)于已經(jīng)完成計(jì)算無(wú)需再使用的緩存內(nèi)容可以進(jìn)行釋放,在迭代過(guò)程中無(wú)需再使用的緩存也可以釋放。釋放緩存方法有如下3種。Graph.unpersist(blocking=true):釋放整個(gè)圖緩存Graph.unpersistVertices(blocking=true):釋放內(nèi)存中緩存的vertices。Graph.edges.unpersist(blocking=true):釋放邊緩存,使用對(duì)邊進(jìn)行修改,但會(huì)重復(fù)使用點(diǎn)進(jìn)行運(yùn)算的操作了解GraphX常用API3.圖數(shù)據(jù)查詢圖創(chuàng)建之后,對(duì)所創(chuàng)建的圖進(jìn)行查詢。查詢內(nèi)容包括頂點(diǎn)與邊的個(gè)數(shù),頂點(diǎn)與邊的視圖,出度數(shù)(以當(dāng)前頂點(diǎn)為起點(diǎn)的邊的數(shù)量),入度數(shù)(以當(dāng)前頂點(diǎn)為目標(biāo)點(diǎn)的邊的數(shù)量)?;镜姆椒ㄈ缢玖私釭raphX常用API3.圖數(shù)據(jù)查詢numEdges:查詢圖中邊的數(shù)量numEdge方法可以查詢邊的數(shù)量,不需要輸入任何參數(shù),直接通過(guò)Graph.numEdges查詢,返回類型為L(zhǎng)ong類型numVertices:查詢圖中頂點(diǎn)個(gè)數(shù)numVertices方法可以查詢頂點(diǎn)個(gè)數(shù),不需要輸入任何參數(shù),直接通過(guò)Graph.numVertices查詢,返回類型為L(zhǎng)ong類型。了解GraphX常用API3.圖數(shù)據(jù)查詢頂點(diǎn)視圖:頂點(diǎn)視圖可以查看頂點(diǎn)的信息,通過(guò)graph.vertices可以返回一個(gè)VertexRDD[(VD],VD為頂點(diǎn)屬性,它繼承于RDD[(VertexID,VD)],所以可以看到頂點(diǎn)的ID和屬性,也可以用Scala的case表達(dá)式解構(gòu)這個(gè)元組直接查看頂點(diǎn)信息:graph.vertices.collect通過(guò)模式匹配解構(gòu)元組:根據(jù)返回的頂點(diǎn)字段數(shù),通過(guò)模式匹配返回的RDD類型元組了解GraphX常用API3.圖數(shù)據(jù)查詢頂點(diǎn)視圖增加過(guò)濾條件的頂點(diǎn)視圖:通過(guò)filter方法增加過(guò)濾條件查詢感興趣的頂點(diǎn)信息通過(guò)下標(biāo)查詢:可以直接根據(jù)Spark元組的特性通過(guò)下標(biāo)的方式訪問返回的頂點(diǎn)信息了解GraphX常用API3.圖數(shù)據(jù)查詢邊視圖:邊視圖只會(huì)返回邊的信息。graph.edges返回一個(gè)包含Edge[ED]對(duì)象的EdgeRDD,ED表示邊屬性的類型。Edge有三個(gè)字段:起點(diǎn)Id、目標(biāo)點(diǎn)Id、邊屬性。并且可以通過(guò)case類的類型構(gòu)造器匹配返回的EdgeRDD直接查看所有邊信息:graph.edges.collect了解GraphX常用API3.圖數(shù)據(jù)查詢邊視圖通過(guò)模式匹配解構(gòu)并且添加過(guò)濾條件:用模式匹配Edge類型的返回結(jié)果,再利用filter進(jìn)行過(guò)濾通過(guò)下標(biāo)查詢:通過(guò)下標(biāo)查詢時(shí),由于Edge類中有三個(gè)屬性srcId,dstId和attr,因此可以直接指定屬性訪問了解GraphX常用API3.圖數(shù)據(jù)查詢頂點(diǎn)與邊的三元組整體視圖:三元視圖邏輯上將頂點(diǎn)和邊的屬性保存為一個(gè)RDD[EdgeTriplet[VD,ED]],它包含EdgeTriplet類的實(shí)例。EdgeTriplet類繼承于Edge類,所以可以直接訪問Edge類的三個(gè)屬性,并且加入了srcAttr和dstAttr成員,這兩個(gè)成員分別包含起點(diǎn)和目標(biāo)點(diǎn)的屬性。graph.triplets可以查看到邊和頂點(diǎn)的所有信息,是一個(gè)完整的視圖直接查詢:graph.triplets.collect,查詢用戶關(guān)系網(wǎng)絡(luò)圖,返回結(jié)果包含頂點(diǎn)和邊的所有信息,包括邊的起點(diǎn)和目標(biāo)點(diǎn),起點(diǎn)屬性,目標(biāo)點(diǎn)屬性,邊屬性。了解GraphX常用API3.圖數(shù)據(jù)查詢頂點(diǎn)與邊的三元組整體視圖通過(guò)下標(biāo)查詢:通過(guò)新成員變量srcAttr,dstAttr可以訪問起點(diǎn)屬性和目標(biāo)點(diǎn)屬性,可以用邊的字段訪問邊的屬性了解GraphX常用API3.圖數(shù)據(jù)查詢度分布計(jì)算:度分布檢測(cè)的目的,主要是了解圖中“超級(jí)節(jié)點(diǎn)”的個(gè)數(shù)和規(guī)模,以及所有節(jié)點(diǎn)度的分布曲線。超級(jí)節(jié)點(diǎn)的存在對(duì)各種傳播算法都會(huì)有重大的影響(不論是正面助力還是反面阻力),因此要預(yù)先對(duì)這些數(shù)據(jù)量有個(gè)預(yù)估。借助GraphX最基本的圖信息接口degrees:VertexRDD[Int](包括inDegrees和outDegrees),這個(gè)指標(biāo)可以輕松計(jì)算出來(lái),并進(jìn)行各種各樣的統(tǒng)計(jì)degrees:返回每個(gè)頂點(diǎn)的度inDegrees:計(jì)算每個(gè)頂點(diǎn)的入度數(shù),不需要參數(shù)outDegrees:計(jì)算頂點(diǎn)的出度,不需要參數(shù)了解GraphX常用API3.圖數(shù)據(jù)查詢了解GraphX常用API自定義函數(shù)&內(nèi)置函數(shù):用戶如果想要對(duì)圖的度進(jìn)行一些特別的計(jì)算,比如最大最小值,平均值一類的計(jì)算,可以通過(guò)自定義函數(shù)的方式,也可以通過(guò)RDD所內(nèi)置的函數(shù)完成。利用自定義函數(shù)統(tǒng)計(jì)度的最大值,如右上圖所示使用RDD自帶的統(tǒng)計(jì)函數(shù)進(jìn)行度分布分析,使用RDD內(nèi)置min,max,sortByKey,top等等對(duì)度進(jìn)行統(tǒng)計(jì),graph.degrees返回的是VertexRDD[Int],即(VertexID,Int),需要調(diào)換成RDD[(Int,VetexId)],因?yàn)檫@些函數(shù)都是對(duì)第一個(gè)值也就是key操作的4.圖數(shù)據(jù)轉(zhuǎn)換通過(guò)以下的數(shù)據(jù)操作轉(zhuǎn)換命令轉(zhuǎn)換數(shù)據(jù)的一個(gè)重要特征是它允許所得圖形重用原有圖形的結(jié)構(gòu)索引(indices),SparkGraphX常見的數(shù)據(jù)轉(zhuǎn)換方法主要如表所示了解GraphX常用API4.圖數(shù)據(jù)轉(zhuǎn)換mapVertices:通過(guò)graph.mapVertices直接對(duì)頂點(diǎn)進(jìn)行map,返回按用戶提供函數(shù)改變了圖中頂點(diǎn)屬性的值或類型之后的圖。該方法主要需要一個(gè)函數(shù),調(diào)用Spark中的map操作,更新頂點(diǎn)的屬性值,由VD-->newVD。了解GraphX常用API4.圖數(shù)據(jù)轉(zhuǎn)換mapEdges:通過(guò)graph.mapEdges直接對(duì)邊的屬性進(jìn)行操作,調(diào)用Spark中的map操作更新邊的屬性值,由ED-->newED,返回按用戶提供函數(shù)改變圖中邊屬性的值或類型之后的圖mapTriplets:該方法的操作也是針對(duì)邊的屬性值,通過(guò)調(diào)用Spark中的map操作更新邊的屬性值,由ED-->newED。例如將邊的屬性用起點(diǎn)的屬性的第一個(gè)值姓名替換了解GraphX常用API5.結(jié)構(gòu)轉(zhuǎn)換結(jié)構(gòu)轉(zhuǎn)換是對(duì)整個(gè)圖的結(jié)構(gòu)進(jìn)行操作,生成新的圖。SparkGraphX中圖的結(jié)構(gòu)轉(zhuǎn)化操作方法也是存放在類Graph中,主要方法如表所示了解GraphX常用API5.結(jié)構(gòu)轉(zhuǎn)換通過(guò)user.txt和relate.txt創(chuàng)建用戶社交網(wǎng)絡(luò)圖reverse:返回一個(gè)新的圖,這個(gè)圖的邊的方向與原圖相比都是反轉(zhuǎn)的。沒有修改頂點(diǎn)或者邊的屬性或者改變邊的數(shù)量,不需要輸入其他參數(shù)了解GraphX常用API5.結(jié)構(gòu)轉(zhuǎn)換對(duì)社交網(wǎng)絡(luò)圖graph進(jìn)行結(jié)構(gòu)轉(zhuǎn)換subgraph:創(chuàng)建子圖的方法。子圖是指節(jié)點(diǎn)集和邊集分別是某一圖的節(jié)點(diǎn)集的子集和邊集的子集的圖在graph.subgraph方法中需要輸入邊的過(guò)濾條件或頂點(diǎn)的過(guò)濾條件,頂點(diǎn)操作可以通過(guò)字段vpred匹配頂點(diǎn)屬性個(gè)數(shù)。對(duì)于邊屬性,可以通過(guò)epred字段匹配,其中的屬性可以通過(guò)默認(rèn)屬性名獲取了解GraphX常用API5.結(jié)構(gòu)轉(zhuǎn)換對(duì)社交網(wǎng)絡(luò)圖graph進(jìn)行結(jié)構(gòu)轉(zhuǎn)換mask:合并兩個(gè)圖并且只保留兩個(gè)圖中都有的頂點(diǎn)和邊,在使用時(shí)需要輸入另一個(gè)圖作為參數(shù)。groupEdges:用來(lái)合并相同Id的邊了解GraphX常用API6.關(guān)聯(lián)聚合關(guān)聯(lián)轉(zhuǎn)換與聚合操作是圖計(jì)算的一個(gè)重點(diǎn),通過(guò)關(guān)聯(lián)操作可以將頂點(diǎn)屬性值連接到圖中。而聚合操作可以發(fā)送信息給指定頂點(diǎn)并將數(shù)據(jù)聚集起來(lái),達(dá)到指定的目的。關(guān)聯(lián)聚合的方法如表所示了解GraphX常用API6.關(guān)聯(lián)聚合了解GraphX常用APIcollectNeighbors:該方法的作用是收集每個(gè)頂點(diǎn)的鄰居頂點(diǎn)的頂點(diǎn)Id和頂點(diǎn)屬性,鄰居頂點(diǎn)為與該點(diǎn)直接相連的頂點(diǎn)。該方法需要輸入一個(gè)參數(shù),返回的結(jié)果是頂點(diǎn)Id和頂點(diǎn)屬性的元組。參數(shù)只有以下幾種類型。EdgeDirection.Out:表示只收集以該頂點(diǎn)為起點(diǎn),鄰居頂點(diǎn)為目標(biāo)點(diǎn)的鄰居頂點(diǎn)的頂點(diǎn)Id和頂點(diǎn)信息EdgeDirection.In:表示只收集以鄰居頂點(diǎn)作為起點(diǎn),該點(diǎn)作為目標(biāo)點(diǎn)的鄰居頂點(diǎn)的頂點(diǎn)Id和頂點(diǎn)信息EdgeDirection.Either:收集所有鄰居頂點(diǎn)的頂點(diǎn)Id和頂點(diǎn)信息6.關(guān)聯(lián)聚合collectNeighborIds:該方法與collectNeighbors方法一致,只是該方法只返回頂點(diǎn)Id,不返回頂點(diǎn)信息了解GraphX常用API6.關(guān)聯(lián)聚合aggregateMessages:GraphX中的核心聚合操作是aggregateMessages,它主要功能是向鄰邊發(fā)消息,合并鄰邊收到的消息,aggregateMessages方法定義如下defaggregateMessages[Msg:ClassTag](sendMsg:EdgeContext[VD,ED,Msg]=>Unit,mergeMsg:(Msg,Msg)=>Msg,tripletFields:TripletFi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)機(jī)械化與農(nóng)村振興人才培育考核試卷
- 2025年公益活動(dòng)加盟合同
- 2025年大型活動(dòng)合作協(xié)議
- 2025年度高科技實(shí)驗(yàn)室租賃合同4篇
- 2025年城市綠化設(shè)計(jì)合作協(xié)議
- 2025年加盟經(jīng)營(yíng)協(xié)議訂立
- 2025年醫(yī)療設(shè)備維修協(xié)議
- 2025年水電安裝勞務(wù)分包合同(含應(yīng)急響應(yīng))3篇
- 2025版土地使用權(quán)無(wú)償贈(zèng)與合同(含基礎(chǔ)設(shè)施)3篇
- 二零二五版附價(jià)格調(diào)整機(jī)制的長(zhǎng)期供貨合同3篇
- 【探跡科技】2024知識(shí)產(chǎn)權(quán)行業(yè)發(fā)展趨勢(shì)報(bào)告-從工業(yè)轟鳴到數(shù)智浪潮知識(shí)產(chǎn)權(quán)成為競(jìng)爭(zhēng)市場(chǎng)的“矛與盾”
- 《中國(guó)政法大學(xué)》課件
- GB/T 35270-2024嬰幼兒背帶(袋)
- 遼寧省沈陽(yáng)名校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(新題型:19題)(基礎(chǔ)篇)(含答案)
- 2022版藝術(shù)新課標(biāo)解讀心得(課件)小學(xué)美術(shù)
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 醫(yī)學(xué)教程 常見化療藥物歸納
- 麻醉藥品、精神藥品月檢查記錄表
- JJF 1101-2019環(huán)境試驗(yàn)設(shè)備溫度、濕度參數(shù)校準(zhǔn)規(guī)范
- GB/T 25000.51-2016系統(tǒng)與軟件工程系統(tǒng)與軟件質(zhì)量要求和評(píng)價(jià)(SQuaRE)第51部分:就緒可用軟件產(chǎn)品(RUSP)的質(zhì)量要求和測(cè)試細(xì)則
評(píng)論
0/150
提交評(píng)論