Image copyright AP

Police in the US state of Ohio have killed a man who attacked four people with a machete in a restaurant.

Mohamed Barry, 30, fled after the attack in a Mediterranean diner in the city of Columbus, leading police on a chase before he was shot and killed.

All four people were taken to hospital and are expected to make a full recovery.

"There was no rhyme or reason as to who he was going after," said Sgt Rich Weiner.

Columbus police said they are working with federal authorities on the investigation but still have not provided a motive.

Barry first came to the restaurant earlier in the evening. He had a conversation with an employee and left.

He returned about 30 minutes later, approached a man and a woman sitting near the door and started the attack.

Customers and workers attempted to stop the attack by throwing chairs at him.

"He came to each table and just started hitting them," customer Karen Bass told a local CBS television station.

"There were tables and chairs overturned, there was a man on the floor bleeding, there was blood on the floor."

She fell five times, she said. "My legs felt like jelly. I just thought he was going to come behind me and slash me up."

One customer told 911 dispatchers the attacker "just started running through the restaurant" and she ran to a nearby fast-food restaurant with her children to hide.

The suspect eventually fled the restaurant in his car but police ran him off the road.

"He had a machete and another knife in his hand and he lunged across the hood [bonnet] at the officers," the chief said, who described it as a "random attack".

Three men and one woman were hurt in the attack.

Police say they attempted to stop Barry with a stun gun unsuccessfully, and an officer shot him when he lunged at them.

The officer who shot Barry is a 25-year veteran of the Columbus police.