我正在使用Jupyter笔记本,刚开始学习Apache spark,但在创建简单的RDD时遇到错误:
sc.parallelize([2, 3, 4]).count()
错误是:parallelize() missing 1 required positional argument: 'c'
这种情况发生在各种类型,如果我尝试textFile("")
,我得到一个位置参数丢失。我有sparkcontext as sc
,有人可以帮我解决这个问题。
答案 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[*]"))