Я провел преобразование tf-idf, и теперь я хочу получить ключи и значения из результата.
Я использую следующий код udf для получения значений:
def extract_values_from_vector(vector):
return vector.values.tolist()
extract_values_from_vector_udf = udf(lambda vector:extract_values_from_vector(vector), ArrayType(DoubleType()))
extract = rescaledData.withColumn("extracted_keys", extract_keys_from_vector_udf("features"))
Поэтому, если sparsevector выглядит следующим образом: features = SparseVector (123241, {20672: 4.4233, 37393: 0.0, 109847: 3.7096, 118474: 5.4042}))
извлеченные_ключи в моем извлечении будут выглядеть так: [4.4233, 0.0, 3.7096, 5.4042]
У меня вопрос, как мне получить ключи в словаре SparseVector?Например, ключи = [20672, 37393, 109847, 118474]?
Я пробую следующий код, но он не будет работать
def extract_keys_from_vector(vector):
return vector.indices.tolist()
extract_keys_from_vector_udf = spf.udf(lambda vector:extract_keys_from_vector(vector), ArrayType(DoubleType()))
Результат, который он мне дал: [null, null, null, null]
Можеткто-нибудь поможет?Большое спасибо заранее!