У меня есть один фрейм данных со списком токенов.
data1 = [(1, ["This","is", "category", "A"]),
(2, ["This", "is", "category", "B","This", "is", "category", "B"]),
(3, ["This", "is", "category", "F","This", "is", "category", "C"])]
df2=spark.createDataFrame(data1).withColumnRenamed('_1','category').withColumnRenamed('_2','tokens')
У меня есть еще один фрейм данных с токенами и их векторным представлением. Вот схема для второго
StructType(List(StructField(word,StringType,true),StructField(vector,ArrayType(DoubleType,true),true)))
word vector
you [0.04986, 0.5678]
Я хочу посмотреть список токенов во фрейме данных с векторным представлением и вычислить среднее значение в pyspark.
Пожалуйста, дайте мне знать, как Я могу сделать это эффективно в pyspark.
Лог c в python / panda соответствует http://nadbordrozd.github.io/blog/2016/05/20/text-classification-with-word2vec/
return np.array([
np.mean([word2vec[w] for w in words if w in word2vec]
or [np.zeros(dim)], axis=0)
for words in X