Como converter um RDD com uma coluna SparseVector em um DataFrame com uma coluna como Vector

eu tenho umRDD com uma tupla de valores (String, SparseVector) e quero criar umQuadro de dados usando oRDD. Para obter um (label: string, features: vector)Quadro de dados que é o esquema exigido pela maioria das bibliotecas do algoritmo ml. Eu sei que isso pode ser feito porqueHashingTF ml Library gera um vetor quando recebe uma coluna de recursos de umQuadro de dados.

temp_df = sqlContext.createDataFrame(temp_rdd, StructType([
        StructField("label", DoubleType(), False),
        StructField("tokens", ArrayType(StringType()), False)
    ]))

#assumming there is an RDD (double,array(strings))

hashingTF = HashingTF(numFeatures=COMBINATIONS, inputCol="tokens", outputCol="features")

ndf = hashingTF.transform(temp_df)
ndf.printSchema()

#outputs 
#root
#|-- label: double (nullable = false)
#|-- tokens: array (nullable = false)
#|    |-- element: string (containsNull = true)
#|-- features: vector (nullable = true)

Então, minha pergunta é: posso de alguma forma ter umRDD de (String, SparseVector) converte-o em umQuadro de dados de (String, vetor). Eu tentei com o habitualsqlContext.createDataFrame mas não háTipo de dados isso se encaixa nas necessidades que tenho.

df = sqlContext.createDataFrame(rdd,StructType([
        StructField("label" , StringType(),True),
        StructField("features" , ?Type(),True)
    ]))

questionAnswers(3)

yourAnswerToTheQuestion