成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

集算器協(xié)助java處理結構化文本之對齊連接

開發(fā) 后端
數(shù)據(jù)庫有關聯(lián)語句,可以方便地進行對齊連接運算,但有時數(shù)據(jù)是存儲在文本文件中的,用JAVA直接計算需要寫大量循環(huán)語句才能實現(xiàn),代碼繁瑣且運行低效。使用集算器來輔助Java編程,可以方便高效地解決此類問題。下面我們通過例子來看一下具體作法。

文本文件emp.txt存儲著員工信息,EId等于1的員工不在該文件中。文本文件sOrder.txt存儲著訂單信息,其SellerId字段和emp中的EId字段相對應,SellerId等于2的訂單不在該表中。部分源數(shù)據(jù)如下:

  emp.txt

sOrder.txt

現(xiàn)在需要將emp的Name、Dept、Gender這三個字段對齊到sOrder中,計算結果輸出到新文件中。期望的計算結果如下:

集算器代碼:

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中。計算后結果如下:

點擊藍色鏈接可以看到具體的記錄,如下:

右連接只是交換對齊的位置,同樣可以用集算器來實現(xiàn)。比如將sOrder按照emp對齊,只需要在代碼中交換兩者的順序,即=join@1(emp:e,EId;sOrder:s,SellerId),計算結果如下:

全連接也很容易實現(xiàn),只需要使用函數(shù)選項@f,代碼是:join@f(sOrder:s,SellerId;emp:e,EId),計算結果如下:

連接運算共有四種,除了上面提到的左連接、右連接、全連接,還有內連接。函數(shù)join默認執(zhí)行內連接,代碼是=join(sOrder:s,SellerId;emp:e,EId),計算結果如下:

回到例子中,A4:=A3.new(s.OrderID, s.Client, s.SellerId, s.Amount, s.OrderDate, e.Name, e.Dept, e.Gender)。這句代碼從連接的表中取得需要的字段,組成新的結構化二維表格,計算結果如下:

對齊的工作已經(jīng)完成,下面將數(shù)據(jù)輸出到新的文件,代碼為:=file(“E: \\result.txt”).export@t(A4)。

函數(shù)export默認使用tab作為列分割符,函數(shù)選項@t表示將字段名輸出在***行。打開result.txt,可以看到內容如下:

上述腳本已經(jīng)完成了所有的對其輸出工作,接下來只需在JAVA代碼中調用即可。

    //建立esProc jdbc連接
     Class.forName(“com.esproc.jdbc.InternalDriver”);
     con= DriverManager.getConnection(“jdbc:esproc:local://”);
     //調用esProc,其中test是腳本文件名
     st =(com.esproc.jdbc.InternalCStatement)con.prepareCall(“call test()”);
     //執(zhí)行esProc存儲過程
     st.execute();

只要執(zhí)行上述JAVA代碼,emp就會對齊到sOrder中,并將計算結果輸出到result.txt文件。

下面將例子稍作改動:按動態(tài)的時間段查詢sOrder中的數(shù)據(jù),并執(zhí)行同樣的對齊操作,***直接將結果返回JAVA。為了實現(xiàn)這個例子,集算器需要定義兩個參數(shù),分別是begin和end,代表起止時間。集算器代碼如下:

紅色部分為改動的代碼。

  A2:通過函數(shù)select對sOrder進一步過濾,過濾條件為JAVA傳來的起止時間,即@begin和@end。

  A5:將A4中的計算結果輸出到JDBC接口。

  JAVA代碼也需要進行相應的改動,以便傳入?yún)?shù),并獲取計算結果。代碼如下:

    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();

責任編輯:王雪燕 來源: 博客園
相關推薦

2015-12-18 10:10:06

集算器Java結構化

2015-12-04 10:26:31

java結構化集合運算

2024-10-08 10:57:04

2021-12-29 10:51:19

JavaSPL架構

2011-08-24 13:34:34

Oracle

2018-04-03 14:00:03

結構化數(shù)據(jù)非結構化數(shù)據(jù)數(shù)據(jù)庫

2014-03-14 09:52:15

非結構化數(shù)據(jù)

2021-12-12 08:37:18

結構化數(shù)據(jù)非結構化數(shù)據(jù)數(shù)據(jù)

2017-12-06 15:46:31

深度學習結構化數(shù)據(jù)NLP

2024-05-27 00:32:45

2022-05-24 09:52:37

Spark SQL大數(shù)據(jù)處理Hive

2023-12-25 15:00:18

結構化布線光纖

2010-01-13 13:20:08

VB.NET結構化異常

2023-06-19 07:08:22

結構化數(shù)據(jù)ChatGPT

2011-03-01 09:39:51

結構化布線

2009-10-21 15:20:28

結構化布線技術

2009-10-15 13:49:23

結構化布線系統(tǒng)

2023-07-25 17:21:20

綜合布線結構化布線

2022-07-04 22:08:52

結構化數(shù)據(jù)谷歌

2012-02-08 15:54:05

ibmdw
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热在这里只有精品 | 成人免费淫片aa视频免费 | 国产精品久久午夜夜伦鲁鲁 | 91高清在线 | 精品一区二区电影 | 免费观看一级视频 | 日韩欧美在线不卡 | 人人干人人艹 | 欧美亚洲视频 | 狠狠骚| 影音先锋中文字幕在线观看 | www.99re| 国产一区二区欧美 | 91成人免费观看 | 97视频在线观看免费 | 久久久久久久91 | 狠狠操婷婷 | 大象视频一区二区 | 日韩欧美久久 | 中文字幕国产第一页 | 成人国产精品入口免费视频 | 天天天操 | 中文字幕一区在线 | 国产1区 | 在线欧美一区 | 日韩在线一区二区三区 | 午夜精品久久久久久久星辰影院 | 草草视频在线播放 | 蜜桃精品噜噜噜成人av | 亚洲经典一区 | 一区二区三区免费 | 波多野结衣中文字幕一区二区三区 | 欧美亚洲激情 | 亚洲国产精品久久久久婷婷老年 | 在线成人 | 日本久久精品视频 | 91视频中文 | 国产乱码精品一区二区三区忘忧草 | 欧美不卡视频一区发布 | 国产精品久久久久久av公交车 | 国产一级视频在线观看 |