Fre*_*ira 45 python apache-spark rdd apache-spark-sql pyspark
我正在尝试加载SVM文件并将其转换为一个,DataFrame
因此我可以使用Pipeline
Spark 的ML模块(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()
Run Code Online (Sandbox Code Playgroud)
我正在使用: ./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'
Run Code Online (Sandbox Code Playgroud)
我无法理解的是,如果我跑:
data = MLUtils.loadLibSVMFile(sc, "/home/svm_capture").toDF()
Run Code Online (Sandbox Code Playgroud)
直接在PySpark shell中,它的工作原理.
zer*_*323 93
toDF
方法是在里面执行SparkSession
SQLContext
的猴子补丁(1.x中的构造函数)构造函数,所以为了能够使用它你必须首先创建一个SQLContext
(或SparkSession
):
# SQLContext or HiveContext in Spark 1.x
from pyspark.sql import SparkSession
from pyspark import SparkContext
sc = SparkContext()
rdd = sc.parallelize([("a", 1)])
hasattr(rdd, "toDF")
## False
spark = SparkSession(sc)
hasattr(rdd, "toDF")
## True
rdd.toDF().show()
## +---+---+
## | _1| _2|
## +---+---+
## | a| 1|
## +---+---+
Run Code Online (Sandbox Code Playgroud)
更不用说你SQLContext
无论如何都需要使用DataFrames.
归档时间: |
|
查看次数: |
42860 次 |
最近记录: |