這篇文章主要講解了“集算器怎么協(xié)助java處理結(jié)構(gòu)化文本實現(xiàn)對齊連接”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“集算器怎么協(xié)助java處理結(jié)構(gòu)化文本實現(xiàn)對齊連接”吧!
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、安州網(wǎng)絡(luò)推廣、小程序定制開發(fā)、安州網(wǎng)絡(luò)營銷、安州企業(yè)策劃、安州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供安州建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
文本文件emp.txt存儲著員工信息,EId等于1的員工不在該文件中。文本文件sOrder.txt存儲著訂單信息,其SellerId字段和emp中的EId字段相對應(yīng),SellerId等于2的訂單不在該表中。部分源數(shù)據(jù)如下:
emp.txt:
sOrder.txt:
現(xiàn)在需要將emp的Name、Dept、Gender這三個字段對齊到sOrder中,計算結(jié)果輸出到新文件中。期望的計算結(jié)果如下:
集算器代碼:
A1格和A2格分別從文本文件中讀取數(shù)據(jù),并存入兩個變量emp和sOrder。這里使用了函數(shù)import,其默認的列分割符是tab,函數(shù)選項 @t表示將***行讀為字段名。由于例子中只需要emp.txt中的部分字段,因此A1需要以字段名做參數(shù)。計算完成后,emp和sOrder的值如下圖:
A3:=join@1(sOrder:s,SellerId;emp:e,EId)。函數(shù)join執(zhí)行連接運算,并將兩個表改名為s和e。其中函數(shù)選項@1表示左連接,即例子中的要求:將emp對齊到sOrder中。計算后結(jié)果如下:
點擊藍色鏈接可以看到具體的記錄,如下:
右連接只是交換對齊的位置,同樣可以用集算器來實現(xiàn)。比如將sOrder按照emp對齊,只需要在代碼中交換兩者的順序,即=join@1(emp:e,EId;sOrder:s,SellerId),計算結(jié)果如下:
全連接也很容易實現(xiàn),只需要使用函數(shù)選項@f,代碼是:join@f(sOrder:s,SellerId;emp:e,EId),計算結(jié)果如下:
連接運算共有四種,除了上面提到的左連接、右連接、全連接,還有內(nèi)連接。函數(shù)join默認執(zhí)行內(nèi)連接,代碼是=join(sOrder:s,SellerId;emp:e,EId),計算結(jié)果如下:
回到例子中,A4:=A3.new(s.OrderID, s.Client, s.SellerId, s.Amount, s.OrderDate, e.Name, e.Dept, e.Gender)。這句代碼從連接的表中取得需要的字段,組成新的結(jié)構(gòu)化二維表格,計算結(jié)果如下:
對齊的工作已經(jīng)完成,下面將數(shù)據(jù)輸出到新的文件,代碼為:=file(“E: \\result.txt”).export@t(A4)。
函數(shù)export默認使用tab作為列分割符,函數(shù)選項@t表示將字段名輸出在***行。打開result.txt,可以看到內(nèi)容如下:
上述腳本已經(jīng)完成了所有的對其輸出工作,接下來只需在JAVA代碼中調(diào)用即可。
//建立esProc jdbc連接
Class.forName(“com.esproc.jdbc.InternalDriver”);
con= DriverManager.getConnection(“jdbc:esproc:local://”);
//調(diào)用esProc,其中test是腳本文件名
st =(com.esproc.jdbc.InternalCStatement)con.prepareCall(“call test()”);
//執(zhí)行esProc存儲過程
st.execute();
只要執(zhí)行上述JAVA代碼,emp就會對齊到sOrder中,并將計算結(jié)果輸出到result.txt文件。
下面將例子稍作改動:按動態(tài)的時間段查詢sOrder中的數(shù)據(jù),并執(zhí)行同樣的對齊操作,***直接將結(jié)果返回JAVA。為了實現(xiàn)這個例子,集算器需要定義兩個參數(shù),分別是begin和end,代表起止時間。集算器代碼如下:
紅色部分為改動的代碼。
A2:通過函數(shù)select對sOrder進一步過濾,過濾條件為JAVA傳來的起止時間,即@begin和@end。
A5:將A4中的計算結(jié)果輸出到JDBC接口。
JAVA代碼也需要進行相應(yīng)的改動,以便傳入?yún)?shù),并獲取計算結(jié)果。代碼如下:
Class.forName(“com.esproc.jdbc.InternalDriver”);
con= DriverManager.getConnection(“jdbc:esproc:local://”);
st =(com.esproc.jdbc.InternalCStatement)con.prepareCall(“call test(?,?)”);
st.setObject(1,startTime);
st.setObject(2,endTime);
st.execute();
ResultSet set = st.getResultSet();
感謝各位的閱讀,以上就是“集算器怎么協(xié)助java處理結(jié)構(gòu)化文本實現(xiàn)對齊連接”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對集算器怎么協(xié)助java處理結(jié)構(gòu)化文本實現(xiàn)對齊連接這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!