中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

java重復代碼解決方法 java重復代碼重構

使用java api調用HDFS文件系統時,遇到重復的代碼,怎么解決

利用符集編碼。

創新互聯建站2013年開創至今,是專業互聯網技術服務公司,擁有項目成都網站設計、網站制作網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元安龍做網站,已為上家服務,為安龍各地企業和個人服務,聯系電話:13518219792

因為HDFS支持6種字符集編碼,每個本地文件編碼方式又是極可能不一樣的,我們上傳本地文件的時候其實就是把文件編碼成字節流上傳到文件系統存儲。

java導數據到esid重復

,代碼主要邏輯如下:

// 讀取要導入數據的文件

BufferedReader br = new BufferedReader(new FileReader(

"D:\\test\\test.txt"));

String json = null;

int count = 0;

// 開啟批量插入

BulkRequestBuilder bulkRequest = client.prepareBulk();

while ((json = br.readLine()) != null) {

bulkRequest.add(client.prepareIndex("test", "all")

.setSource(json));

// 每一千條提交一次

if (count % 1000 == 0) {

bulkRequest.execute().actionGet();

System.out.println("提交了:" + count);

}

count++;

}

bulkRequest.execute().actionGet();

System.out.println("插入完畢");

br.close();

登錄后復制

?

運行后發現一個問題,我100多萬條的數據,導入到es中怎么生成了1000多萬條,而且還是在沒有完全導入的情況下

然后用小批量數據導入到es,再把這些數據導出來,發現有好多重復的數據

為什么會重復呢,原因是在每一千條提交一次代碼這塊,第一次一千條提交了,并沒有把bulkRequest置空,所以第二次提交的時候,會提交兩千條,包括第一次已經提交的一千條,然后我們自己也沒有設置_id,所以es會自動給數據生成一個_id,即使是重復的數據,搞清楚了原因,下面來說解決方法,主要有兩種:

第一種就是在提交了一千條后,對bulkRequest進行重置,因為bulkRequest并沒有重置的方法,所以可以新建一個bulkRequest,類似于重置,具體代碼如下:

// 讀取要導入數據的文件

BufferedReader br = new BufferedReader(new FileReader(

"D:\\test\\test.txt"));

String json = null;

int count = 0;

// 開啟批量插入

BulkRequestBuilder bulkRequest = client.prepareBulk();

while ((json = br.readLine()) != null) {

bulkRequest.add(client.prepareIndex("test", "all")

.setSource(json));

// 每一千條提交一次

if (count % 1000 == 0) {

bulkRequest.execute().actionGet();

//此處新建一個bulkRequest,類似于重置效果

bulkRequest = client.prepareBulk();

System.out.println("提交了:" + count);

}

count++;

}

bulkRequest.execute().actionGet();

System.out.println("插入完畢");

br.close();

登錄后復制

?

第二種就是自己設置_id,確保每一條數據只有一個_id,這樣的話,即使數據重復了,因為_id是一樣的,所以es會進行更新,這樣的話并沒有從根源上解決數據重復的問題,只是重復數據會更新,這樣的話效率會慢,具體代碼如下:

// 讀取要導入數據的文件

BufferedReader br = new BufferedReader(new FileReader(

"D:\\test\\test.txt"));

String json = null;

int count = 0;

// 開啟批量插入

BulkRequestBuilder bulkRequest = client.prepareBulk();

while ((json = br.readLine()) != null) {

//設置_id為count

bulkRequest.add(client.prepareIndex("test", "all",

String.valueOf(count)).setSource(json));

// 每一千條提交一次

if (count % 1000 == 0) {

bulkRequest.execute().actionGet();

//此處新建一個bulkRequest,類似于重置效果

System.out.println("提交了:" + count);

}

count++;

}

bulkRequest.execute().actionGet();

System.out.println("插入完畢");

br.close();

登錄后復制

?

建議使用第一種方法,效率會快很多。

我寫了個java代碼,編譯沒有問題,但是執行的時候就出了一堆亂七八糟的代碼,這是怎么回事?

原因是你編譯使用的javac,把代碼編譯成版本61的class,而你的運行環境java,是一個老版本,能執行的上限是52版本。

解決方法有兩個:

1,安裝和JDK相同版本的Java運行時(JRE),并正確設置PATH變量。驗證方法是:

在黑窗口里分別輸入java -version和javac -version,兩個版本要一致,或者java的版本更高。

相關命令截圖如下:

2,編譯的時候指定運行時的版本:使用--release參數指定版本。

例如,你通過 java -version查看到版本=8,那么就按如圖的命令編譯

消去java中的重復代碼

這4個構造函數分別是對1個,2個,3個,以及4個參數的處理,最好別刪,如果非要刪掉一些代碼的話,建議刪掉前面3個構造函數,保留最后的有4個參數那個,當然最后那個也要修改

代碼:

person(String?name,int?age,int?weight,String?address){

this.name?=?name;

this.age?=?age;

this.weight?=?weight;

this.address?=?address;

}

(PS:純手打,望采納)

分享名稱:java重復代碼解決方法 java重復代碼重構
網頁網址:http://www.2m8n56k.cn/article2/doidpic.html

成都網站建設公司_創新互聯,為您提供用戶體驗軟件開發網頁設計公司移動網站建設網站導航靜態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設
主站蜘蛛池模板: 久久久久女人精品毛片九一 | 性高湖久久久久久久久aaaaa | 美欧毛片 | 在线播放免费一级毛片欧美 | 欧美亚洲午夜 | 国产一区亚洲二区 | 国产精品一区二区免费 | 黄色综合网 | 日本国产最新一区二区三区 | 欧美成人一级视频 | 国产片在线天堂av | 久久综合狠狠综合狠狠 | 国产最新自拍 | 日韩三级在线观看 | 2021国产精品一区二区在线 | 色老久久 | 国产高清毛片 | 亚洲性生活视频 | www.欧美xxxx| 免费成年人在线观看视频 | 在线视频观看国产 | 91国内精品久久久久影院优播 | 中文字幕最新中文字幕中文字幕 | 国产欧美亚洲精品 | 久久免费视频在线观看30 | 97精品在线视频 | 福利社在线视频 | 欧美大尺度xxxxx视频 | 欧美成人 一区二区三区 | 久久精品视频在线观看榴莲视频 | 久草草视频在线观看免费高清 | 久久99国产精品久久欧美 | 国产精品爽爽va在线观看无码 | 亚洲精品国产专区91在线 | 美女三级毛片 | 国产呦精品一区二区三区网站 | 亚洲午夜一区二区三区 | 丝袜足液精子免费视频 | 日本人一级毛片免费视频 | 色婷婷91 | 国产在线一区二区 |