0
我已經開始使用Async HBase程序庫。我試圖使用TableInputFormat。我不需要我的Map Reduce作業的所有行,所以我通過在TableRecordReader中指定掃描器對象的正則表達式來修改代碼。使用asyc HBase掃描程序進行復雜的正則表達式
String regEx=getRegEx(conf); //my function to calculate the regular expression based on the input given in the conf object
System.out.println("RegEx = "+regEx);
scanner.setKeyRegexp(regEx);
基本上我只是追加所需的行與一個OR(|
)正則表達式鍵。這適用於我想要取數百行的情況。在某些情況下,當我想要獲取更多行時,我的正則表達式非常冗長(大約600,000)。但在這種情況下,掃描儀停止工作。
我知道基於正則表達式的行鍵過濾在服務器端完成,複雜的正則表達式可能無法正常工作。
- 那麼可以做些什麼來使掃描器只提取所需的行?
- 使用多個掃描儀是否高效,以便每個掃描儀都可以獲得正則表達式的一部分?
- 或者是使用單個掃描程序來獲取所有行,然後通過它們遍歷所需的行是否有效?
供參考:我的表中的總行數將在數千萬的範圍內。