我正在尝试使用Java API从DataFrame中选择列列表。

示例Java代码:

List<String> colList = Arrays.asList(new String[] { "column1", "column2", "column3" });
df.selectExpr((String[])colList.toArray()).show();


在Java API中,我必须使用selectExpr而不是select。还有其他使用Java API选择列列表的方法。

但是在Scala中,我可以执行以下操作。

示例Scala代码:

val colList = List("column1", "column2", "column3")
df.select(colList.head, colList.tail: _*).show

最佳答案

您可以使用String数组:

String[] colList =  { "column1", "column2", "column3" };
String first = colList[0];
String[] rest =  Arrays.copyOfRange(colList, 1, colList.length);

logData.select(first, rest);


Column的数组:

import static org.apache.spark.sql.functions.col;
import org.apache.spark.sql.Column;

Column[] colList =  { col("column1"), col("column2"), col("column3") };
logData.select(colList);

07-24 09:55