Como mapear recursos da saída de um VectorAssembler para os nomes das colunas no Spark ML?

Estou tentando executar uma regressão linear no PySpark e quero criar uma tabela contendo estatísticas resumidas, como coeficientes, valores-P e valores-t para cada coluna no meu conjunto de dados. No entanto, para treinar um modelo de regressão linear, tive que criar um vetor de recurso usando o SparkVectorAssemblere agora para cada linha eu tenho um único vetor de recurso e a coluna de destino. Quando tento acessar as estatísticas de resumo de regressão incorporadas do Spark, elas fornecem uma lista muito bruta de números para cada uma dessas estatísticas, e não há como saber qual atributo corresponde a qual valor, o que é realmente difícil de descobrir manualmente com um grande número de colunas. Como mapeio esses valores de volta para os nomes das colunas?

Por exemplo, eu tenho minha saída atual como algo assim:

Coeficientes: [-187.807832407, -187.058926726,85.1716641376,10595.3352802, -127.258892837, -39.2827730493, -1206.47228704,33.7078197705,99.9956812528]

Valor P: [0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,18589731365614548, 0,275173571416679, 0,0]

estatística t: [-23.348593508995318, -44.72813283953004, 19.836508234714472, 144.49248881747755, -16.547272230754242, -9.560681351483941, -19.563547400189073, 1.322837938121212, 1.032285091212121212312712312312312312712

Erros padrão do coeficiente: [8.043646497811427, 4.182131353367049, 4.293682291754585, 73.32793120907755, 7.690626652102948, 4.108783841348964, 61.669402913526625, 25.481496555145145147147147287287287287288287287288447

Esses números não significam nada, a menos que eu saiba a qual atributo eles correspondem. Mas na minhaDataFrame Eu só tenho uma coluna chamada "recursos" que contém linhas de vetores esparsos.

Esse é um problema cada vez maior quando tenho recursos de codificação de um hot, porque se eu tiver uma variável com uma codificação de comprimento n, receberei n coeficientes correspondentes / valores-p / valores-t etc.

questionAnswers(3)

yourAnswerToTheQuestion