Knock at the Cabin, an apocalyptic horror film from director M. Night Shyamalan, was the highest-grossing movie in US and Canadian theaters this weekend, knocking out Walt Disney Co.’s Avatar: The Way of Water, which held that spot for seven weeks in a row.