我在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
来排除错误类型的可能性。所有列都被视为字符串(尽管有些是数字)。
我称错了吗?
答案 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()