ну вот у вас есть технический DLL, а есть DLL который вы описали руками и он отличается, но по факут на хдфс у вас попадает данные с техническим ddl, ну возможно нужно отпарсить , если в условный mysql cохранять еще или как-то, но это всё делается один раз.
ну то есть мы возвращаемся к тому чтобы сделать DDL (только не сначала как постановку задачи, а как результат какого-то тестового прогона), и положить его рядом с джобом.. опять без ТДД.. и по сути вы деплоите просто спарковые джобы, а метастор - это просто что эти джобы решили туда сохранить.. это нормальная схема, я видел чисто МЛ даталейки которые так делают, но для промышленного даталейка который под гавернанс процессом кмк сложнее накрутить весь metadata harvesting чтобы выяснить что в итоге хранится, чем порождено, какие версии, чем сделать метаданные частью предмета поставки, и реализовать весь гавернанс как часть деплоймент процесса