たとえば、次のようなテーブルがあるとします。
_A,B
2,6
1,2
1,3
1,5
2,3
_
列A
の昇順で並べ替えますが、その中で、次のように列B
の降順で並べ替えます。
_A,B
1,5
1,3
1,2
2,6
2,3
_
orderBy("A", desc("B"))
を使用しようとしましたが、エラーが発生します。
Spark 2.0)のデータフレームを使用してクエリをどのように記述すればよいですか?
以下に示すように、Columnメソッド desc を使用します。
val df = Seq(
(2,6), (1,2), (1,3), (1,5), (2,3)
).toDF("A", "B")
df.orderBy($"A", $"B".desc).show
// +---+---+
// | A| B|
// +---+---+
// | 1| 5|
// | 1| 3|
// | 1| 2|
// | 2| 6|
// | 2| 3|
// +---+---+
desc
は正しいメソッドですが、Columnn
クラスのメソッドではありません。したがって、次のように適用する必要があります。
_df.orderBy($"A", $"B".desc)
_
_$"B".desc
_は列を返すため、_"A"
_も_$"A"
_に変更する必要があります(またはcol("A")
if spark implicitsがインポートされていない場合) 。