使用 Python 的 Apache Spark TFIDF
Posted
技术标签:
【中文标题】使用 Python 的 Apache Spark TFIDF【英文标题】:Apache Spark TFIDF using Python 【发布时间】:2016-04-02 16:55:38 【问题描述】:Spark 文档声明使用HashingTF
功能,但我不确定转换函数期望作为输入的内容。
http://spark.apache.org/docs/latest/mllib-feature-extraction.html#tf-idf
我尝试运行教程代码:
from pyspark import SparkContext
from pyspark.mllib.feature import HashingTF
sc = SparkContext()
# Load documents (one per line).
documents = sc.textFile("...").map(lambda line: line.split(" "))
hashingTF = HashingTF()
tf = hashingTF.transform(documents)
但我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/salloumm/spark-1.6.0-bin-hadoop2.6/python/pyspark/ml/pipeline.py", line 114, in transform
return self._transform(dataset)
File "/Users/salloumm/spark-1.6.0-bin-hadoop2.6/python/pyspark/ml/wrapper.py", line 148, in _transform
return DataFrame(self._java_obj.transform(dataset._jdf), dataset.sql_ctx)
AttributeError: 'list' object has no attribute '_jdf'
【问题讨论】:
你能告诉我们你试过的代码吗? 我尝试了此链接中显示的第一个示例(Python 中的示例)spark.apache.org/docs/latest/… 使用了一个简单的文本文件作为输入。 【参考方案1】:根据您显示的错误,很明显您没有遵循教程或使用问题中包含的代码。
此错误是由于使用from pyspark.ml.feature.HashingTF
而不是pyspark.mllib.feature.HashingTF
造成的。只需清理您的环境并确保使用正确的导入即可。
【讨论】:
以上是关于使用 Python 的 Apache Spark TFIDF的主要内容,如果未能解决你的问题,请参考以下文章
使用 Apache Spark 提交 Python 应用程序
为啥 Apache-Spark - Python 在本地比 pandas 慢?
Apache Spark:如何在Python 3中使用pyspark