我正在尝试使用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);