Bring a large pot of water to a boil over high heat and salt it. Add the pasta and cook until tender but not mushy, 8 to 10 minutes; drain and set aside.
While the pasta cooks, place the oil in a large skillet over medium heat; when hot, add the onion and celery and cook until softened, about 5 minutes. Add the cabbage and cook until just wilted, 3 to 4 minutes. Then add the prosciutto, stock, beans, and sprinkle with salt and pepper; cook until heated through, about 5 more minutes. If it seems dry, add a little more stock or water; it should be moist but not soupy.
Add the pasta to the bean mixture and stir gently. Taste and adjust the seasoning, sprinkle with Parmesan, and serve.