Combine the dry ingredients. In a medium bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, ginger, and allspice until well combined.
Mix the wet ingredients. In a large bowl, whisk together the canola oil, dark brown sugar, granulated sugar, and eggs until smooth. Whisk in the sour cream, vanilla extract, and lemon zest.
Combine wet and dry. Add the dry ingredients to the wet ingredients and stir until just combined and no dry streaks remain.
Fold in the carrots and pineapple. Gently fold in the shredded carrots and well-drained crushed pineapple until evenly distributed.
Assemble and bake. Pour the batter evenly over the pecan layer in the pan and gently spread it to the edges. Bake for 35–40 minutes, or until a toothpick inserted into the center comes out clean.
Cool and invert. Let the cake cool in the pan for 5 minutes. Run a knife around the edges, then carefully invert onto a serving plate while the topping is still warm. Allow the cake to cool slightly before slicing.