【问题标题】:Big Data Analytics Using Spark使用 Spark 进行大数据分析
【发布时间】:2021-12-15 15:00:18
【问题描述】:

如何解决此错误?执行最后一个单元格时出现错误, 我在哪里做错了? 它与我的程序版本有什么关系吗?或类似的东西?

enter image description here

def count_examples(Data):
count = Data.map(lambda labelPoint: (labelPoint.label,1)).reduceByKey(lambda x,y: x+y)
return count.collect()

counts = count_examples(Data)

counts3 = count_examples(sc.parallelize(Data.take(3)))

assert type(counts3) == list, 'Incorrect return type'
assert type(counts3[0]) == tuple, 'Incorrect return type'
assert type(counts3[0][0]) == float, 'Incorrect return type'
assert type(counts3[0][1]) == int, 'Incorrect return type'

assert counts3[0][0] == 5.0, 'Incorrect return value'
assert counts3[0][1] == 2, 'Incorrect return value'

AssertionError                            Traceback (most recent call last)
<ipython-input-24-9c21c32429c5> in <module>()
----> 1 assert counts3[0][0] == 5.0, 'Incorrect return value'
      2 assert counts3[0][1] == 2, 'Incorrect return value'

AssertionError: Incorrect return value

【问题讨论】:

    标签: python apache-spark bigdata


    【解决方案1】:

    这不是错误,而是断言失败。 基本上,这里发生的是counts3[0][0] 中存储的值不等于 5.0

    您可以通过两步轻松解决此问题

    1. 知道期望值是多少 如此简单地将您的代码更改为
      assert counts3[0][0] == 5.0, f"Incorrect return value, actual is {counts3[0][0]}"
      

    当您运行此代码时,它会再次失败,但会输出准确的预期值

    1. 将断言中的值更改为上述步骤中的预期值

    【讨论】:

    • 你是对的 ==2.0 而不是 5.0,但不幸的是,我无法更改该单元格。还有其他解决办法吗?
    • @HawarDizayee,不幸的是,唯一的其他选择是更改输入数据,使counts3[0][0] 等于5.0。否则你将不得不摆脱断言语句
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 2015-06-04
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多