2017-04-09 32 views
0

我有幾個文本文件,我正在計算所有這些文本文件合計在一起的字母。例如text1.txt包含「Stackoverflow非常酷」。我期待得到總字母數字符在阿帕奇計數

+0

這將是很高興看到你已經嘗試過。你必須更好地展示你已經嘗試過的以及你受到攻擊的地方。 –

回答

0

將所有使用通配符*的文件加載到chararray類型的字段中。將該行分成單詞,然後分成字母和數字。

A = LOAD '/path/text*.txt' AS (lines:chararray); 
B = FOREACH A GENERATE FLATTEN(TOKENIZE(LOWER(lines))) AS words; 
C = FOREACH B GENERATE FLATTEN(TOKENIZE(REPLACE(words,'','|'), '|')) AS letters; 
D = GROUP C BY letters; 
E = FOREACH D GENERATE COUNT(C), group; 
DUMP E; 
+0

謝謝!如果我要查找特定字母的數字而不是整個字母集。例如,只有a,b和c。那麼這個查詢將如何改變? – Alex

+0

添加一個步驟來過濾關係C以獲得新的關係,例如C1 = FILTER C BY(字母匹配'。*(a | b | c)。*');然後在後續步驟中用C1替換C。 –

+0

謝謝!但事實是,對於小寫字母和大寫字母而言,它是不同的。我想要一個&A來對待。我如何使它不區分大小寫? – Alex