




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
廣電用戶數(shù)據(jù)存儲與
處理的程序開發(fā)任務(wù)背景Hive與一般數(shù)據(jù)倉庫使用傳統(tǒng)關(guān)系數(shù)據(jù)庫作為基礎(chǔ)平臺不同,Hive基于Hadoop平臺構(gòu)建,這使得Hive天然具備大數(shù)據(jù)處理能力。在之前的學(xué)習(xí)和實踐中,使用Hive都是通過CLI的方式,該方式僅允許使用HQL執(zhí)行查詢等操作,并且該方式比較笨拙、單一。其實Hive也提供了輕客戶端的實現(xiàn),通過HiveServer或HiveServer2,客戶端可以在不啟動CLI的情況下對Hive中的數(shù)據(jù)進(jìn)行操作,兩者都允許遠(yuǎn)程客戶端使用多種編程語言如Java、Python向Hive提交請求,返回結(jié)果。學(xué)習(xí)多種方式操作Hive中的數(shù)據(jù),落實科教興國戰(zhàn)略。任務(wù)背景本章主要介紹如何配置Hive遠(yuǎn)程服務(wù),搭建Hive遠(yuǎn)程開發(fā)環(huán)境,通過案例實現(xiàn)廣電數(shù)據(jù)的存儲和廣電用戶數(shù)據(jù)的查詢與處理,并在此過程中學(xué)習(xí)通過IDEA編程軟件進(jìn)行程序運行、調(diào)試的主要過程和方法。配置Hive遠(yuǎn)程服務(wù)搭建Hive遠(yuǎn)程連接環(huán)境編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的存儲編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的查詢與處理任務(wù)描述在HiveCLI中,一次只能運行一條HQL語句,對于單詞、語句編寫失誤造成的運行失敗也無法立刻修改,只能重新編寫語句,因此效率偏低。在編程類的軟件中進(jìn)行HQL語句的編寫、運行,可以避免上述問題的出現(xiàn)。為了實現(xiàn)Hive程序調(diào)用,需要提前配置和啟動Hive遠(yuǎn)程服務(wù)。本任務(wù)配置Hive遠(yuǎn)程服務(wù)HiveServer2。配置Hive遠(yuǎn)程服務(wù)Hive0.10.0版本具有一個可選的組件HiveServer,用于為Hive提供一種允許客戶端遠(yuǎn)程訪問的服務(wù)。HiveServer基于Thrift協(xié)議,故也稱HiveServer為ThriftServer。HiveServer支持跨平臺、跨編程語言對Hive進(jìn)行訪問;由于HiveServer受Thrift接口限制,所以HiveServer不能處理多于一個客戶端的并發(fā)請求。為實現(xiàn)多用戶并發(fā)訪問,Hive0.11.0版本重寫HiveServer代碼得到了HiveServer2。HiveServer2支持多客戶端的并發(fā)和認(rèn)證,用于為客戶端通過API(例如JDBC、ODBC等)訪問Hive提供更好的支持。配置Hive遠(yuǎn)程服務(wù)配置并啟動Hive遠(yuǎn)程服務(wù)的操作如下。配置Hive遠(yuǎn)程連接屬性。在master主節(jié)點執(zhí)行命令“vim/usr/local/hadoop-3.1.4/etc/hadoop/core-site.xml”,打開core-site.xml文件,然后進(jìn)入編輯模式,添加Hive遠(yuǎn)程服務(wù)的屬性,Hive遠(yuǎn)程服務(wù)的屬性內(nèi)容,修改好后按Esc鍵,輸入“:wq”并按Enter鍵保存退出。<property> <name>xyuser.root.hosts</name> <value>*</value></property><property> <name>xyuser.root.groups</name> <value>*</value></property>配置Hive遠(yuǎn)程服務(wù)分發(fā)配置文件至各子節(jié)點。將core-site.xml文件使用scp命令發(fā)送給各子節(jié)點。啟動Hive遠(yuǎn)程服務(wù)。啟動Hadoop集群和MySQL服務(wù)后,啟動Hive元數(shù)據(jù)庫服務(wù)、HiveServer2遠(yuǎn)程服務(wù),運行結(jié)果如下圖。配置Hive遠(yuǎn)程服務(wù)啟動遠(yuǎn)程服務(wù)之前,要啟動Hive元數(shù)據(jù)服務(wù),否則在后續(xù)連接Hive,執(zhí)行一系列數(shù)據(jù)操作時,編程軟件會提示“Connectionrefused:connect”的錯誤。配置Hive遠(yuǎn)程服務(wù)搭建Hive遠(yuǎn)程連接環(huán)境編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的存儲編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的查詢與處理任務(wù)描述IntelliJIDEA簡稱IDEA,是Java等編程語言開發(fā)集成環(huán)境之一,該集成環(huán)境在智能代碼助手、代碼自動提示、重構(gòu)、JavaEE支持、各類版本工具(Git、SVN等)、JUnit、CVS整合、代碼分析、創(chuàng)新的GUI設(shè)計等方面較為優(yōu)秀。本任務(wù)在IDEA上搭建Hive開發(fā)環(huán)境,并實現(xiàn)Hive遠(yuǎn)程連接測試。創(chuàng)建IDEA開發(fā)項目讀者可到JetBrains公司的官方網(wǎng)站自行下載相關(guān)版本的IDEA編程軟件安裝包。對于個人用戶,可下載Community版(社區(qū)版)的IDEA編程軟件安裝包。下載后,請按照指示進(jìn)行安裝。本書統(tǒng)一使用“IntelliJIDEACommunityEdition2021.3.3”版本。IDEA默認(rèn)選用英文界面運行,讀者也可根據(jù)個人需求在插件管理中下載中文語言包。為了描述方便,本書統(tǒng)一以英文界面進(jìn)行講解。創(chuàng)建IDEA開發(fā)項目在安裝好編程軟件后,即可創(chuàng)建IDEA開發(fā)項目,創(chuàng)建流程如下。打開編程軟件IDEA,彈出歡迎界面,如下圖,單擊“NewProject”按鈕。創(chuàng)建IDEA開發(fā)項目在“NewProject”界面中選擇“Maven”選項,在“ProjectSDK”下拉列表框中選擇1.8版本的JDK,如下圖,單擊“Next”按鈕。創(chuàng)建IDEA開發(fā)項目將項目命名為“HiveJavaAPI”,并將該項目放置在D盤根目錄下,如下圖,單擊“Finish”按鈕。創(chuàng)建IDEA開發(fā)項目項目創(chuàng)建完成后,會自動生成項目框架,如下圖。創(chuàng)建IDEA開發(fā)項目項目初始框架包含的項目元素如下表。項目元素說明項目根目錄項目存儲的本地目錄,項目HiveJavaAPI的安裝目錄為D:\HiveJavaAPI.idea節(jié)點主要用于保存IDEA項目的相關(guān)信息src節(jié)點用于保存源代碼(main目錄)和測試代碼(test目錄)ExternalLibraries節(jié)點用于保存使用到的外部庫文件鏈接ScratchesandConsoles可提供Scratchfiles和Scratchbuffers這兩種臨時的編輯環(huán)境,在臨時的編輯環(huán)境中,讀者可以通過編寫一些文本內(nèi)容或一些代碼片段,實現(xiàn)IDEA功能測試創(chuàng)建IDEA開發(fā)項目項目具體結(jié)構(gòu)如右圖。添加依賴創(chuàng)建好項目后,需要在項目的pom.xml文件中添加Hive相關(guān)依賴。在pom.xml文檔界面中,單擊鼠標(biāo)右鍵選擇“Maven”命令,再選擇“Reloadproject”命令,如右圖,可立即加載依賴。加載完成后,可在左邊Project工具欄中單擊“ExternalLibraries”查看。添加依賴加載完成后,相關(guān)的依賴包會默認(rèn)保存到系統(tǒng)用戶目錄下的.m2/repository子目錄下,如下圖。手動加載MySQL驅(qū)動在加載MySQL驅(qū)動前,需要在MySQLJAR包下載官網(wǎng)中提前下載驅(qū)動JAR包“mysql-connector-java-8.0.20.jar”,并將其復(fù)制到本地磁盤的“HiveJavaAPI連接驅(qū)動”目錄下。在創(chuàng)建好的IDEA項目里加載MySQL驅(qū)動的流程如下。單擊菜單“File”,選擇“ProjectStructure”選項,在彈出的“ProjectStructure”界面中選擇“Libraries”選項,單擊加號“+”按鈕,選擇“Java”選項,如下圖。手動加載MySQL驅(qū)動選擇存放MySQL驅(qū)動JAR包的本地目錄,定位到連接驅(qū)動的位置并選中,如下圖,單擊“OK”按鈕。手動加載MySQL驅(qū)動在彈出的界面“ChooseModules”中選擇“HiveJavaAPI”選項,如左圖,然后單擊“OK”按鈕,返回到“ProjectStructure”界面后,如右圖,單擊“Apply”按鈕,即可完成驅(qū)動加載。手動加載MySQL驅(qū)動添加驅(qū)動后的項目視圖會顯示加載的新驅(qū)動列表,如下圖。JDBC及其主要接口JDBC是Java數(shù)據(jù)庫連接(JavaDataBaseConnectivity)的縮寫,它是一套用于執(zhí)行SQL語句的JavaAPI。應(yīng)用程序可通過JDBC連接到關(guān)系數(shù)據(jù)庫,并通過使用SQL語句完成數(shù)據(jù)庫中數(shù)據(jù)的查詢、新增、更新和刪除等操作。不同數(shù)據(jù)庫處理數(shù)據(jù)的方式并不太相同,如果直接使用數(shù)據(jù)庫廠商提供的訪問接口操作數(shù)據(jù)庫,那么應(yīng)用程序的可移植性會變得較差。有了JDBC后,便可解決應(yīng)用程序可移植性差的問題,因為JDBC要求各個數(shù)據(jù)庫廠商按照統(tǒng)一的規(guī)范來提供數(shù)據(jù)庫驅(qū)動。在應(yīng)用程序中由JDBC和具體的數(shù)據(jù)庫驅(qū)動聯(lián)系,所以讀者不必直接與底層的數(shù)據(jù)庫交互,使得代碼的通用性更強。JDBC在應(yīng)用程序與數(shù)據(jù)庫之間起到橋梁作用,當(dāng)應(yīng)用程序使用JDBC訪問特定的數(shù)據(jù)庫時,需要通過不同的數(shù)據(jù)庫驅(qū)動與不同的數(shù)據(jù)庫進(jìn)行連接,連接后即可對該數(shù)據(jù)庫進(jìn)行相應(yīng)的操作。JDBC及其主要接口Hive-JDBC驅(qū)動是專用于Hive的JDBC驅(qū)動,客戶端可通過JDBC訪問Hive。8.2.3小節(jié)中已在pom.xml文件中添加了對JDBC驅(qū)動的依賴。在開發(fā)JDBC驅(qū)動前,需要了解JDBC常用的API。JDBCAPI主要位于java.sql包中,java.sql包定義了一系列訪問數(shù)據(jù)庫的接口和類,常用接口包括Driver、DriverManager、Connection、Statement、PreparedStatement、ResultSet等。JDBC及其主要接口1.Driver接口Driver接口是所有JDBC驅(qū)動必須實現(xiàn)的接口,該接口專門提供給數(shù)據(jù)庫廠商使用。需要注意的是,在編寫JDBC驅(qū)動時,必須將所使用的數(shù)據(jù)庫驅(qū)動或類庫加載至項目的Classpath中。在進(jìn)行Java開發(fā)時,程序員只需要根據(jù)程序使用的驅(qū)動類型,針對對應(yīng)的Driver接口裝載即可,Driver接口的方法如下表。方法名稱功能描述class.forName("sun.jdbc.odbc.jdbcOdbcDriver")通過ODBC-JDBC驅(qū)動程序裝載JDBC驅(qū)動class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")通過MSSQL2000數(shù)據(jù)庫的JDBC驅(qū)動程序裝載JDBC驅(qū)動JDBC及其主要接口方法名稱功能描述class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")通過MSSQL2005數(shù)據(jù)庫的JDBC驅(qū)動程序裝載JDBC驅(qū)動class.forName("com.mysql.cj.jdbc.Driver")通過MySQL數(shù)據(jù)庫的JDBC驅(qū)動程序裝載JDBC驅(qū)動class.forName("oracle.jdbc.driver.OracleDriver")通過Oracle數(shù)據(jù)庫的JDBC驅(qū)動程序裝載JDBC驅(qū)動JDBC及其主要接口2.DriverManager接口DriverManager接口是JDBC提供的工具類,用于加載JDBC驅(qū)動、建立與數(shù)據(jù)庫之間的連接。DriverManager類中的方法都是靜態(tài)方法,因此在程序中無須對DriverManager類中的方法進(jìn)行實例化,直接通過類名即可調(diào)用。DriverManager接口的方法如下表。方法名稱功能描述staticvoidregisterDriver(Driverdriver)該方法用于向DriverManager注冊給定的JDBC驅(qū)動staticConnectiongetConnection(Stringurl,Stringuser,Stringpwd)該方法用于建立與數(shù)據(jù)庫之間的連接,并返回表示連接的Connection對象JDBC及其主要接口3.Connection接口Connection接口的主要作用是與特定數(shù)據(jù)庫進(jìn)行連接,在連接上下文中執(zhí)行SQL語句并返回結(jié)果。Connection接口的主要方法如下表。方法名稱功能描述publicjava.sql.DatabaseMetaDatagetMetaData()該方法用于返回表示數(shù)據(jù)庫的元數(shù)據(jù)的DatabaseMeta對象StatementcreateStatement()該方法用于創(chuàng)建將SQL語句發(fā)送至數(shù)據(jù)庫的Statement對象PreparedStatementprepareStatement(Stringsql)該方法用于創(chuàng)建將參數(shù)化的SQL語句發(fā)送至數(shù)據(jù)庫的PreparedStatement對象CallableStatementprepareCall(Stringsql)該方法用于創(chuàng)建調(diào)用數(shù)據(jù)庫存儲過程的CallableStatement對象JDBC及其主要接口4.Statement接口Statement接口用于執(zhí)行靜態(tài)SQL語句并返回所生成結(jié)果的對象,Statement接口對象可以通過Connection接口實例的createStatement()方法獲得。Statement接口的主要方法如下表。方法名稱功能描述booleanexecute(Stringsql)該方法用于執(zhí)行各種SQL語句,并返回BOOLEAN類型的值,如果值為true,那么表示所執(zhí)行的SQL語句有查詢結(jié)果,可以通過Statement接口的getResultSet()方法獲得查詢結(jié)果intexecuteUpdate(Stringsql)該方法用于執(zhí)行SQL中的INSERT、UPDATE和DELETE語句,并返回INT類型的值,表示數(shù)據(jù)庫中受該SQL語句影響的記錄條數(shù)ResultSetexecuteQuery(Stringsql)該方法用于執(zhí)行SQL中的SELECT語句,并返回表示查詢結(jié)果的ResultSet對象JDBC及其主要接口5.PreparedStatement接口PreparedStatement接口是Statement接口的子接口,表示預(yù)編譯的SQL語句的對象。該接口擴(kuò)展了帶有參數(shù)SQL語句的執(zhí)行操作,應(yīng)用該接口中的SQL語句可以使用占位符“?”代替參數(shù),然后通過setXxx()方法為SQL語句的參數(shù)賦值。PreparedStatement接口的主要方法如表所示。方法名稱功能描述intexecuteUpdate()該方法用于執(zhí)行SQL語句,SQL語句必須是DML語句或是無返回內(nèi)容的SQL語句,如DDL語句ResultSetexecuteQuery()該方法用于執(zhí)行SQL查詢,并返回ResultSet對象voidsetInt(int
parameterIndex,int
x)該方法用于將指定參數(shù)設(shè)置成給定的INT值voidsetString(intparameterIndex,Stringx)該方法用于將指定參數(shù)設(shè)置成給定的STRING值JDBC及其主要接口6.ResultSet接口ResultSet接口表示數(shù)據(jù)庫查詢的結(jié)果集,通常通過執(zhí)行查詢數(shù)據(jù)庫的語句生成,主要用于保存JDBC執(zhí)行查詢時返回的結(jié)果。該結(jié)果集被封裝在一個邏輯表格中,在ResultSet接口內(nèi)部有一個指向表格數(shù)據(jù)行的游標(biāo)。ResultSet接口初始化時,游標(biāo)默認(rèn)指向第一行之前,可調(diào)用next()方法移動游標(biāo)到下一行,直至下一行為空則返回FALSE。ResultSet接口的主要方法如下表。方法名稱功能描述StringgetString(intcolumnIndex)該方法用于獲取指定字段的STRING類型的值,參數(shù)columnIndex代表字段的索引StringgetString(StringcolumnName)該方法用于獲取指定字段的STRING類型的值,參數(shù)columnName代表字段的名稱JDBC及其主要接口續(xù)上表方法名稱功能描述intgetInt(intcolumnIndex)該方法用于獲取指定字段的INT類型的值,參數(shù)columnIndex代表字段的索引intgetInt(StringcolumnName)該方法用于獲取指定字段的INT類型的值,參數(shù)columnName代表字段的名稱booleannext()該方法用于將游標(biāo)從當(dāng)前位置向下移一行創(chuàng)建連接測試程序使用JDBC連接數(shù)據(jù)庫時,通常需要提供如下4個必要參數(shù)。驅(qū)動類名:“org.apache.hive.jdbc.HiveDriver”。連接地址和端口號:“jdbc:hive2://master:10000”。用戶名:使用默認(rèn)用戶root。密碼:使用默認(rèn)密碼123456。創(chuàng)建連接測試程序在IDEA中創(chuàng)建連接測試程序,實現(xiàn)連接Hive數(shù)據(jù)庫并創(chuàng)建數(shù)據(jù)庫test,操作如下。創(chuàng)建Java類。選擇main節(jié)點下面的java文件夾,單擊鼠標(biāo)右鍵選擇“New”命令,選擇“JavaClass”命令,如下圖。在彈出的界面輸入“Connection”,按Enter鍵,創(chuàng)建新的Java類“Connection.java”。創(chuàng)建連接測試程序編輯代碼。在新建的Java類Connection.java中進(jìn)行與Hive默認(rèn)數(shù)據(jù)庫DEFAULT的連接,并創(chuàng)建新的數(shù)據(jù)庫test。運行程序。在對應(yīng)代碼文件中,單擊鼠標(biāo)右鍵選擇“Run'Connection.main()'”命令運行代碼,在下方工具欄“Run”運行結(jié)果出現(xiàn)“Processfinishedwithexitcode0”表示運行無誤,如下圖。創(chuàng)建連接測試程序驗證。在HiveCLI,使用“SHOWDATABASES;”命令查詢數(shù)據(jù)庫,可以看到剛創(chuàng)建的數(shù)據(jù)庫test,如下圖。至此,Hive的開發(fā)環(huán)境搭建成功。配置Hive遠(yuǎn)程服務(wù)搭建Hive遠(yuǎn)程連接環(huán)境編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的存儲編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的查詢與處理任務(wù)描述在實現(xiàn)Hive遠(yuǎn)程服務(wù)配置和Hive遠(yuǎn)程服務(wù)調(diào)用的基礎(chǔ)上,通過在IDEA中編寫程序?qū)崿F(xiàn)廣電大案例的5個數(shù)據(jù)表創(chuàng)建和數(shù)據(jù)裝載的代碼封裝。本任務(wù)將介紹如何在IDEA開發(fā)環(huán)境中調(diào)試程序,通過程序調(diào)用的方式,將廣電數(shù)據(jù)存儲至Hive。創(chuàng)建開發(fā)項目打開編程軟件IDEA,選擇“File”→“New”,創(chuàng)建項目ZJSM,并將該項目放置在本地目錄(如“D:\Hive\ZJSM”)。創(chuàng)建的具體操作可參考上小節(jié)中的內(nèi)容,ZJSM項目視圖如下圖。在項目的pom.xml文件中添加Hive相關(guān)依賴,操作參照上小節(jié)中的內(nèi)容。創(chuàng)建HiveHelper類和連接Hive在src/main/java目錄下創(chuàng)建新的Java類HiveHelper,用于進(jìn)行數(shù)據(jù)庫相關(guān)操作。在HiveHelper類中創(chuàng)建一個新方法getConn(),用于通過使用JDBC連接Hive數(shù)據(jù)庫。由于在連接過程中可能出現(xiàn)驅(qū)動無法加載或訪問數(shù)據(jù)錯誤等異常,故此處使用異常處理或拋出異常。創(chuàng)建測試類在src/test/java目錄下創(chuàng)建新的測試類HiveTest,用于調(diào)用HiveHelper類,完成相關(guān)的數(shù)據(jù)庫操作。創(chuàng)建Hive數(shù)據(jù)庫在HiveHelper類中創(chuàng)建一個新方法createDatabase(StringdbName),用于創(chuàng)建系統(tǒng)數(shù)據(jù)庫,需要使用異常處理。創(chuàng)建Hive表在HiveHelper類中創(chuàng)建一個新方法createTable2(StringdbName),用于創(chuàng)建系統(tǒng)數(shù)據(jù)庫,需要使用異常處理。由于數(shù)據(jù)表較多,僅以其中一份表,即用戶狀態(tài)變更數(shù)據(jù)表mediamatch_userevent的創(chuàng)建為例。其他表的創(chuàng)建,讀者可參照案例自行補充完成。裝載數(shù)據(jù)在HiveHelper類中創(chuàng)建一個新方法loadData(StringlocalFile,StringtbName),用于從Linux本地CSV文件裝載數(shù)據(jù)至Hive表,同樣地,需要使用異常處理。程序運行與調(diào)試在菜單欄中選擇“Run”→“Run'HiveTest'”運行測試類,如下圖。程序運行與調(diào)試如果程序運行錯誤,那么可依據(jù)錯誤提示的行號,在打開HiveTest代碼后,找到相應(yīng)的代碼行。單擊行號右邊空白處,在相應(yīng)的代碼前面設(shè)置斷點(斷點是指行號后面生成的小紅點,當(dāng)程序執(zhí)行到斷點時,系統(tǒng)會自動暫停,讀者可以去觀察程序運行的狀態(tài)和相關(guān)變量的值,當(dāng)需要程序繼續(xù)運行時,可按F7鍵繼續(xù)運行程序),進(jìn)行程序調(diào)試,在程序調(diào)試模式下,程序遇到斷點會自動中斷運行。程序運行與調(diào)試程序調(diào)試如下圖。程序運行與調(diào)試在菜單欄中選擇“Run”→“Debug”(或按快捷鍵Shift+F9),可進(jìn)入程序調(diào)試模式,如下圖。程序運行與調(diào)試程序在中斷情況下,可通過切換到“Debugger”窗口,從而查看變量值,查找程序是否存在拼寫錯誤或邏輯錯誤,如下圖。配置Hive遠(yuǎn)程服務(wù)搭建Hive遠(yuǎn)程連接環(huán)境編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的存儲編寫程序?qū)崿F(xiàn)廣電數(shù)據(jù)的查詢與處理任務(wù)描述本任務(wù)以第4~7章的內(nèi)容為基礎(chǔ),將廣電大數(shù)據(jù)查詢與處理的主要實現(xiàn)過程進(jìn)行整理,最后封裝成一個完整的程序。由于篇幅所限,此處具體實現(xiàn)時僅選取幾個關(guān)鍵環(huán)節(jié)的代碼進(jìn)行解析,并不展示全部封裝好的代碼。本任務(wù)在IDEA中編程實現(xiàn)從Hive表中查詢用戶狀態(tài)變更數(shù)據(jù)表的數(shù)據(jù),并對用戶基本數(shù)據(jù)表、用戶收視行為數(shù)據(jù)表、賬單數(shù)據(jù)表中的一些無效數(shù)據(jù)進(jìn)行清理操作。查詢數(shù)據(jù)在HiveHelper類中創(chuàng)建一個新方法selectAll(StringtbName),用于查詢用戶狀態(tài)變更數(shù)據(jù)表中的數(shù)據(jù),由于用戶狀態(tài)變更數(shù)據(jù)表中的數(shù)據(jù)字段較多,因此僅以查詢表中的一些數(shù)據(jù)字段為例。在HiveTest類中調(diào)用selectAll()方法,并使用該方法查詢表mediamatch_userevent中的數(shù)據(jù),程序運行結(jié)果如下圖。刪除無效用戶數(shù)據(jù)根據(jù)任務(wù)7.1,本小節(jié)將通過程序的方式,實現(xiàn)無效用戶數(shù)據(jù)的刪除。下面以用戶基本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西北師范大學(xué)《金融數(shù)學(xué)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 沅陵縣2025年小升初素養(yǎng)數(shù)學(xué)檢測卷含解析
- 皖南醫(yī)學(xué)院《機(jī)電一體化技術(shù)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 款式設(shè)計與服裝改良考核試卷
- 無機(jī)鹽在光電子材料中的應(yīng)用探索考核試卷
- 煤炭及制品批發(fā)市場市場準(zhǔn)入機(jī)制考核試卷
- 期貨市場區(qū)塊鏈技術(shù)應(yīng)用服務(wù)考核試卷
- 生物質(zhì)成型燃料在熱電聯(lián)產(chǎn)中的應(yīng)用實踐考核試卷
- 液體乳品生產(chǎn)工藝優(yōu)化與效率分析考核試卷
- 獸藥零售的寵物醫(yī)療資源整合策略考核試卷
- 鄉(xiāng)村老年人活動中心建設(shè)方案
- 2025年上海外服招聘筆試參考題庫含答案解析
- 英語課堂中的思政元素融入策略研究
- 新文化運動課件
- 糖尿病合并輸尿管結(jié)石
- 管線標(biāo)志樁施工方案
- 揚州市“無廢城市”建設(shè)實施方案(2022-2025年)
- 汽車乘員仿真RAMSIS操作指南
- DB11T 1490-2017 人民防空工程防護(hù)設(shè)備安裝驗收技術(shù)規(guī)程
- 軍隊采購協(xié)議書模板
- 2024-2025學(xué)年中職語文基礎(chǔ)模塊 下冊高教版教學(xué)設(shè)計合集
評論
0/150
提交評論