_val columnName=Seq("col1","col2",....."coln");
_
Dataframe.select操作を実行して、指定された列名のみを含むデータフレームを取得する方法はありますか。 dataframe.select("col1","col2"...)
を実行できることは知っていますが、columnName
は実行時に生成されます。ループ内の列名ごとにdataframe.select()
を繰り返し実行できます。パフォーマンスのオーバーヘッドはありますか?これを達成する他の簡単な方法はありますか?
val columnNames = Seq("col1","col2",....."coln")
// using the string column names:
val result = dataframe.select(columnNames.head, columnNames.tail: _*)
// or, equivalently, using Column objects:
val result = dataframe.select(columnNames.map(c => col(c)): _*)
dataFrame.select()
には列のシーケンスが必要であり、文字列のシーケンスがあるため、シーケンスをList
sのcol
に変換し、そのリストをシーケンスに変換する必要があります。 columnName.map(name => col(name)): _*
は文字列のシーケンスから列のシーケンスを提供し、これをパラメーターとしてselect()
に渡すことができます。
val columnName = Seq("col1", "col2")
val DFFiltered = DF.select(columnName.map(name => col(name)): _*)