基于1.4的Spark文档(https://spark.apache.org/docs/1.4.0/mllib-feature-extraction.html),我正在编写一个TF-IDF示例,用于将文本文档转换为值向量。给出的示例显示了如何完成此操作,但是输入是没有 key 的 token 的RDD。这意味着我的输出RDD不再包含索引或键以引用回原始文档。例子是这样的:

documents = sc.textFile("...").map(lambda line: line.split(" "))

hashingTF = HashingTF()
tf = hashingTF.transform(documents)

我想做这样的事情:
documents = sc.textFile("...").map(lambda line: (UNIQUE_LINE_KEY, line.split(" ")))

hashingTF = HashingTF()
tf = hashingTF.transform(documents)

并让生成的tf变量在某处包含UNIQUE_LINE_KEY值。我只是想念一些明显的东西吗?从示例看来,没有很好的方法将document RDD与tf RDD链接起来。

最佳答案

如果您在提交85b96372cf0fd055f89fc639f45c1f2cb02a378f(包括1.4)之后使用Spark版本,并使用ml API HashingTF(需要DataFrame输入而不是纯RDD),则输出中的原始列。希望对您有所帮助!

关于apache-spark - 如何保存Spark HashingTF()函数的输入键或索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31151163/

10-12 22:57