spark SQL GROUP BY聚合引发错误"列表索引超出范围"

时间:2015-12-22 08:31:15

标签: apache-spark pyspark apache-spark-sql pyspark-sql

我在spark 1.5.0中有一个带有两列的数据帧。以下查询正常工作: sqlContext.sql("select id, value from table").show()

但是聚合失败了:

sqlContext.sql("select id, count(value) from table group by id").show()

返回错误:

WARN TaskSetManager: Lost task 13.0 in stage 10.0: Traceback ...

IndexError: list Index out of range

我故意使用count来排除错误类型的可能性。所有列都被视为字符串(尽管有些是数字)。 我称错了吗?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,原因是创建表的数据框是使用不完整的行创建的,例如:

a = sqlContext.createDataFrame([(1, "a"), (2, )], ["id", "value"])

如果是这样,也许你可以尝试:

sqlContext.sql("select id, count(coalesce(value, '')) from table group by id").show()

sqlContext.sql("select id, count(*) from table group by id").show()