Как преобразовать RDD со столбцом SparseVector в DataFrame со столбцом как вектор
у меня естьРДД с кортежем значений (String, SparseVector), и я хочу создатьDataFrame с использованиемРДД, Чтобы получить (метка: строка, функции: вектор)DataFrame это схема, требуемая большинством библиотек алгоритма ml. Я знаю, что это можно сделать, потому чтоHashingTF Библиотека ml выводит вектор, если ему дан столбец функцийDataFrame.
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)
Итак, мой вопрос, могу ли я как-то иметьРДД из (String, SparseVector) преобразовать его вDataFrame из (Строка, вектор). Я пробовал с обычнымsqlContext.createDataFrame
но нетТип данных это соответствует потребностям, которые у меня есть.
df = sqlContext.createDataFrame(rdd,StructType([
StructField("label" , StringType(),True),
StructField("features" , ?Type(),True)
]))