我正在尝试使用Java API从数据框中选择列列表。
示例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);