0

我在 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故意使用确实排除了错误类型的可能性。所有列都被视为字符串(尽管有些是数字)。我叫错了吗?

4

1 回答 1

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()
于 2016-05-04T21:54:45.263 回答