たとえば、次のデータフレームがある場合
val tempDF=Seq(("a",2),("b",1),("a",3)).toDF("letter","value")
scala> tempDF.show()
+------+-----+
|letter|value|
+------+-----+
| a| 2|
| b| 1|
| a| 3|
+------+-----+
groupBy
列に対して操作を実行したいのですが、列letter
に別の文字c
が存在しない可能性があることを知っていますletter
。通常私は持っているだろう
tempDF.groupBy("letter").sum()
scala> tempDF.groupBy("letter").sum().show()
+------+----------+
|letter|sum(value)|
+------+----------+
| a| 5|
| b| 1|
+------+----------+
しかし、私はこのようなものが欲しいです:
+------+----------+
|letter|sum(value)|
+------+----------+
| a| 5|
| b| 1|
| c| 0|
+------+----------+
どういうわけc
かデータフレームに文字を追加せずにこれを行うことは可能ですか?つまり、リストに多くのデータフレームを含めることができますが、各データフレームでどの文字が欠落しているか(存在する場合)はわかりません。代わりに、各データフレームに表示される文字のリスト全体を知っています。
可能なすべての値がすでにわかっている場合は、「value」を0として別の(ユニバーサル)DataSetを作成します。次に、それを任意のtempDFと結合して、欠落している文字を追加します。次に、最終的なデータセットに対してgroupByを実行します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加