Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark提交抛出错误,与pyspark不同_Apache Spark_Pyspark - Fatal编程技术网

Apache spark spark提交抛出错误,与pyspark不同

Apache spark spark提交抛出错误,与pyspark不同,apache-spark,pyspark,Apache Spark,Pyspark,我一直在使用Ipython笔记本测试一个脚本,并将pyspark传递给它。我想完成的一切都很顺利 我还使用pyspark和works在没有笔记本的情况下从命令行运行了它 使用1.3.1版 使用spark submit将其作为作业提交时 spark-submit --master local[*] myscript.py 我得到以下错误: x_map = rdd.map(lambda s: (s[1][1],s[1][3])).distinct().toDF().toPandas() Attr

我一直在使用Ipython笔记本测试一个脚本,并将pyspark传递给它。我想完成的一切都很顺利

我还使用pyspark和works在没有笔记本的情况下从命令行运行了它

使用1.3.1版

使用spark submit将其作为作业提交时

spark-submit --master local[*] myscript.py
我得到以下错误:

x_map = rdd.map(lambda s: (s[1][1],s[1][3])).distinct().toDF().toPandas()

AttributeError: 'PipelinedRDD' object has no attribute 'toDF'
我的脚本的开头如下所示:

from pyspark import SparkContext
sc = SparkContext(appName="Whatever")

from pyspark.sql.types import *
from pyspark.sql import Row
import statsmodels.api as sm
import pandas as pd
import numpy as np
import sys
[..] other python modules

rdd = sc.textFile(input_file)
rdd = rdd.map(lambda line: (line.split(",")[1],[x for x in line.split(",")])).sortByKey()

x_map = rdd.map(lambda s: (s[1][1],s[1][3])).distinct().toDF().toPandas()

正如您在本链接中看到的:

创建时,SQLContext向RDD添加一个名为toDF的方法,该方法可用于将RDD转换为数据帧,它是SQLContext.createDataFrame()的缩写

因此,为了在RDD中使用toDF方法,您需要创建一个sqlContext并使用SparkContext初始化它:

from pyspark.sql import SQLContext
...
sqlContext = SQLContext(sc)

谢谢我的注意力分散了,我一定是漏掉了那一点!再次感谢你!