我正在尝试加载一个SVM文件并将其转换为一个DataFrame
,这样我就可以使用Spark中的ML模块(Pipeline
ML)。
我刚刚在Ubuntu 14.04上安装了一个新的Spark 1.5.0(没有配置spark-env.sh
)。
我的my_script.py
是:
from pyspark.mllib.util import MLUtils
from pyspark import SparkContext
sc = SparkContext("local", "Teste Original")
data = MLUtils.loadLibSVMFile(sc, "/home/svm_capture").toDF()
我用的是:./spark-submit my_script.py
我得到了错误:
Traceback (most recent call last):
File "/home/fred-spark/spark-1.5.0-bin-hadoop2.6/pipeline_teste_original.py", line 34, in <module>
data = MLUtils.loadLibSVMFile(sc, "/home/fred-spark/svm_capture").toDF()
AttributeError: 'PipelinedRDD' object has no attribute 'toDF'
我不能理解的是,如果我跑:
data = MLUtils.loadLibSVMFile(sc, "/home/svm_capture").toDF()
直接在PySpark外壳内部,它工作。
toDF
方法是一个猴子补丁executed inside ^{SQLContext
(或SparkSession
):更不用说你首先需要一个
SQLContext
或SparkSession
来处理DataFrames
。相关问题 更多 >
编程相关推荐