Why do Indian Major Carps spawn in running water?
Some fish spawn in running water for a simple reason: There eggs need oxygen and survival rate will be low under hypoxic conditions. Running water has a much lower change of becoming hypoxic than standing water, so that is why many fish spawn in running water. Some fish of standing water, like sticklebacks, wave fresh water over the eggs to achieve the same.

How they sense oxygen level is another matter. In fish, the neuroepithelial cells (NEC) have been implicated as the major oxygen sensing cells. See wikipedia above and specifically this if.you want to know more.