首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火花CountVectorizer返回udt而不是矢量

火花CountVectorizer返回udt而不是矢量
EN

Stack Overflow用户
提问于 2018-05-28 13:43:36
回答 1查看 430关注 0票数 0

我试图在Spark2.3.0中为LDA分析创建一个令牌计数向量。我遵循了一些教程,每次他们都使用CountVectorizer轻松地将字符串数组转换为向量。

我在我的Databricks笔记本上运行了这个简短的例子:

代码语言:javascript
复制
import org.apache.spark.ml.feature.CountVectorizer

val testW = Seq(
  (8, Array("Zara", "Nuha", "Ayan", "markle")),
  (9, Array("fdas", "test", "Ayan", "markle")),
  (10, Array("qwertzu", "test", "Ayan", "fdaf"))
  ).toDF("id", "filtered")

// Set params for CountVectorizer
val vectorizer = new CountVectorizer()
  .setInputCol("filtered")
  .setOutputCol("features")
  .setVocabSize(5) 
  .setMinDF(2) 
  .fit(testW)

// Create vector of token counts
val articlesCountVector = vectorizer.transform(testW).select("id", "features")
display(articlesCountVector)

输出如下:输出

但在我读过的所有教程中,“特性”的类型是vector。为什么在我的情况下是udt

我是不是忘了什么?为什么它不是向量?

可以转换吗?因为我不能用这个udt类型创建LDA模型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 13:54:16

这里没有问题。您看到的是Databricks显示函数的实现细节。

在内部,o.a.s.ml.linalg.Vectoro.a.s.mllib.linalg.Vector都不是本机在Dataset API中表示的,而是使用UDTs (UserDefinedTypes)。因此输出。

您可以在理解VectorAssembler的输出--火花中找到所有字段的确切含义。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50567836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档