Disons que j'ai un tableau comme celui-ci:
A,B
2,6
1,2
1,3
1,5
2,3
Je veux le trier par ordre croissant pour la colonne A
mais à l'intérieur de cela, je veux le trier par ordre décroissant de la colonne B
, comme ceci:
A,B
1,5
1,3
1,2
2,6
2,3
J'ai essayé d'utiliser orderBy("A", desc("B"))
mais cela donne une erreur.
Comment dois-je écrire la requête à l'aide de dataframe dans Spark 2.0?
Utilisez la méthode Column desc , comme indiqué ci-dessous:
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
est la bonne méthode à utiliser, cependant, ce n'est pas une méthode de la classe Columnn
. Il convient donc de l'appliquer comme suit:
df.orderBy($"A", $"B".desc)
$"B".desc
Renvoie une colonne donc "A"
Doit également être remplacé par $"A"
(Ou col("A")
if spark implicits isn ') t importé).