Как получить ключи от pyspark SparseVector - PullRequest
0 голосов
/ 01 января 2019

Я провел преобразование 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]

Можеткто-нибудь поможет?Большое спасибо заранее!

...