同様に:
order_items.groupBy("order_item_order_id").count().orderBy(desc("count")).show()
私が試してみました:
order_items.groupBy("order_item_order_id").sum("order_item_subtotal").orderBy(desc("sum")).show()
しかし、これはエラーになります:
Py4JJavaError: o501.sort の呼び出し中にエラーが発生しました。: org.apache.spark.sql.AnalysisException: 指定された入力列 order_item_order_id, SUM(order_item_subtotal#429) で「合計」を解決できません。
私も試しました:
order_items.groupBy("order_item_order_id").sum("order_item_subtotal").orderBy(desc("SUM(order_item_subtotal)")).show()
しかし、私は同じエラーが発生します:
Py4JJavaError: o512.sort の呼び出し中にエラーが発生しました。: org.apache.spark.sql.AnalysisException: 指定された入力列 order_item_order_id、SUM(order_item_subtotal#429) の 'SUM(order_item_subtotal)' を解決できません。
実行すると正しい結果が得られます:
order_items.groupBy("order_item_order_id").sum("order_item_subtotal").orderBy(desc("SUM(order_item_subtotal#429)")).show()
しかし、これは、Spark が合計列名に追加する番号、つまり#429を見た後、事後的に行われました。
どの番号が追加されるかを知らずに、アプリオリに同じ結果を得る方法はありますか?