【问题标题】:ValueError: RDD is empty-- Pyspark (Windows Standalone)ValueError: RDD 为空-- 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)..................

任何帮助将不胜感激。

谢谢你, 无辜的

【问题讨论】:

    标签: python pyspark rdd


    【解决方案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 至少有一条记录要处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多