private void hSplit() {
		boolean keepReading = true;
		int index;
		while (keepReading) {
			try {
				String line = null;
				Tuple t = null;
				
				while ((line = input.getNextString()) != null) {
					if (line.indexOf("END") == 0) {
						keepReading = false;
					}
					else {
						t = Tuple.makeTupleFromPipeData(line);
						
						index = BMap.myhash(t.get(joinKey));
						writeMap[index].putNextString(line);
					}
				}
			}
			catch (Exception e) {
			}
		}// end of while
		
		//Notify that there are no more messages to send
		for (WriteEnd wEnd : writeMap ) {
			try{
				wEnd.putNextString("END");
			} catch(IOException e) {
				ReportError.msg(this, e);
			}
		}
	}