0

Spark 1.5.0 に 2 つの列を持つデータフレームがあります。次のクエリは正しく機能します。 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 に答える