0
JavaでRowIdを作成するJavaコードを作成しました。しかし、私はそれをmapreduceに変換する必要があります。私はMapReduceが新しく、あなたの助けが必要です。mapreduceのシーケンシャル番号
入力は、二次入力 例として提供
example: Alex 23 M NY
Alex 19 M NJ
Alex 29 M DC
Michael 20 M NY
Michael 24 M DC
ローカルカウントファイル内のファイルされる:
Alex 3
Michael 2
Desired Output:
1 Alex 23 M NY
2 Alex 19 M NJ
3 Alex 29 M DC
1 Michael 20 M NY
2 Michael 24 M DC
Javaで私のコードはここにある:
public class RowId
{
public static void main(String [] args) throws IOException
{
BufferReader in = null;
BufferReader cnt = null;
BufferWriter out = null;
String in_line;
String out_line;
int frst_row_ind=1;
int row_cnt=0;
int new_col=0;
try{
in= BufferReader(new FileReader ("file path in local");
File out_file = new File("o/p path in local");
if(!out_file.exists()){
out_file.createNewFile();
}
FileWriter fw = new FileWriter(out_file);
out = new BufferWriter(fw);
while((in_line = in.readLine())! = null)
{
if (in_line!=null)
{
String[] splitData = in_line.split("\\t");
cnt = new BufferReader(new FileReader("file path of countFile")
while((cnt_line=cnt.readLine()) != null)
{
String[] splitCount = cnt_line.split("\\t");
if ((splitCount[0]).equalsIgnoreCase(splitData[0]))
{
if (frst_row_ind==1)
{
row_cnt = Integer.parseInt(splitCount[1]);
}
new_col++
out.write(String.valueOf(new_col));
out.write("\\t");
for(int i= 0; i <splitData.length; i++)
{
if (!(splitData[i] == null) || (splitData[i].length()== 0))
{
out.write(splitData[i].trim());
if (i!=splitData.length-1)
{
out.write("\\t");
}
}
}
row_cnt--;
out.write("\r\n");
if(row_cnt==0)
{
frst_row_ind=1;
new_col=0;
}
else{
frst_row_ind=0;
}
out.flush();
break;
}
}
}
}
}
catch (IOException e)
{
e.printStrackTrace();
}
finally
{
try{
if(in!=null) in.close();
if(cnt !=null) cnt.close();
}
catch (IOException e)
{
e.printStrackTrace();
}
}
}
}
復帰を行ってくださいあなたのアイデアと一緒に。
ありがとうイシャン、 しかし、私はカウントファイルを提供する必要がありますどのようにあなたは私を説明することができ、これはwork.Iになっているかを意味します。他の資格情報を持つメイン入力ファイル – pamel
Pamel、私はあなたの希望する出力のためのカウントファイルの役割を見ていません。私にも同じことを説明してください。 –
ええ、私はあなたを持っています!答えに感謝します。 それは私を非常に助けました。 – pamel