Pyspark错误:count()上的“索引超出范围”

2024-09-30 18:17:40 发布

您现在位置:Python中文网/ 问答频道 /正文

使用spark1.5,当我调用.count(),.top(),.take(x)时,索引总是超出范围

lateWest = westBound.filter(lambda line: line.split(',')[16] > 0)
print(type(lateWest))<class 'pyspark.rdd.PipelinedRDD'>
lateWest.count()

lateWest.first()

lateWest.take(3)

你知道我为什么会犯这个错误吗。我猜是因为lateWest在第一个命令下是空的。但是我怎样才能检查它是否是空的呢?在


Tags: lambdatoptypecountlinefilterclasspyspark
1条回答
网友
1楼 · 发布于 2024-09-30 18:17:40

Spark使用一个名为lazy evaluation的概念进行操作。所以当你运行第一行时,系统实际上并没有运行lambda函数,它只是将它存储在一个spark对象中。当您调用count()函数时,spark在过滤器中运行lambda函数。这就是错误发生的地方。换句话说,你的错误是告诉你至少有一个输入行没有16个逗号。在

相关问题 更多 >