ValueError: RDD 为空-- Pyspark (Windows Standalone)
Posted
技术标签:
【中文标题】ValueError: RDD 为空-- Pyspark (Windows Standalone)【英文标题】:ValueError: RDD is empty-- Pyspark (Windows Standalone) 【发布时间】:2016-09-01 19:43:14 【问题描述】:我正在尝试创建一个 RDD,但 spark 没有创建它,抛出错误,粘贴在下面;
data = records.map(lambda r: LabeledPoint(extract_label(r), extract_features(r)))
first_point = data.first()
Py4JJavaError Traceback (most recent call last)
<ipython-input-19-d713906000f8> in <module>()
----> 1 first_point = data.first()
2 print "Raw data: " + str(first[2:])
3 print "Label: " + str(first_point.label)
4 print "Linear Model feature vector:\n" + str(first_point.features)
5 print "Linear Model feature vector length: " + str(len (first_point.features))
C:\spark\python\pyspark\rdd.pyc in first(self)
1313 ValueError: RDD is empty
1314 """
-> 1315 rs = self.take(1)
1316 if rs:
1317 return rs[0]
C:\spark\python\pyspark\rdd.pyc in take(self, num)
1295
1296 p = range(partsScanned, min(partsScanned + numPartsToTry, totalParts))
-> 1297 res = self.context.runJob(self, takeUpToNumLeft, p)..................
任何帮助将不胜感激。
谢谢你, 无辜的
【问题讨论】:
【参考方案1】:您的records
为空。您可以致电records.first()
进行验证。
在空 RDD 上调用 first
会引发错误,但不会引发 collect
。例如,
records = sc.parallelize([])
records.map(lambda x: x).collect()
[]
records.map(lambda x: x).first()
ValueError: RDD 为空
【讨论】:
【参考方案2】:我也遇到了这个问题,使用 FIRST() 操作方法,我检查并发现 RDD 是空的,因此我遇到了这个问题。确保 RDD 至少有一条记录要处理。
【讨论】:
以上是关于ValueError: RDD 为空-- Pyspark (Windows Standalone)的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark rdd.zip ValueError:无法反序列化具有不同成对项目数的 RDD