我在Spark

时间:2017-03-30 11:48:47

标签: python apache-spark rdd

我正在使用Jupyter笔记本,刚开始学习Apache spark,但在创建简单的RDD时遇到错误:

sc.parallelize([2, 3, 4]).count()

错误是:parallelize() missing 1 required positional argument: 'c' 这种情况发生在各种类型,如果我尝试textFile(""),我得到一个位置参数丢失。我有sparkcontext as sc,有人可以帮我解决这个问题。

5 个答案:

答案 0 :(得分:2)

您必须定义Spark上下文和并行化的切片数。例如:

import pyspark as sp

nSlices = 10
sc = sp.SparkContext(appName='myApp')
rdd = sc.parallelize([2,3,4],nSlices)

# [...]
sc.close()

并且不要忘记使用spark-submit

来调用您的程序

答案 1 :(得分:0)

rdd = sc.parallelize([2, 3, 4])
c = rdd.count()

count()方法返回long类型值而不是rdd。

答案 2 :(得分:0)

您必须初始化SparkContext。

以下是Learning Spark: Lightning-Fast Big Data Analysis

的示例代码
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf = conf)

答案 3 :(得分:0)

只需添加这三行代码。它将解决问题。

from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))

答案 4 :(得分:0)

我遇到同样的问题。 pyspark已经创建了SparkContex。以下方法可以解决问题:

from pyspark import SparkConf
from pyspark import SparkContext
sc = SparkContext.getOrCreate(SparkConf().setMaster("local[*]"))