Preheat the oven to 350°F and grease a 9x13-inch baking dish.
Drain the canned sweet potatoes well, pressing gently in a colander to remove excess liquid, then mash in a large bowl until mostly smooth.
Whisk in the granulated sugar, melted butter, eggs, milk, vanilla, salt, and cinnamon until smooth and evenly combined.
Spread the sweet potato mixture evenly into the prepared baking dish.
In a separate bowl, combine the chopped pecans, brown sugar, and flour. Stir in the melted butter until the mixture clumps together like wet sand.
Scatter the streusel evenly over the filling, all the way to the edges of the dish.
Bake for 30–35 minutes, until the topping is deep golden brown and the filling is set with only a slight jiggle in the center.
Let rest for 10 minutes before serving.