Spark SQL - 选择所有AND计算列?

时间:2016-07-19 20:19:04

标签: java apache-spark apache-spark-sql

这是一个总的noob问题,对不起。在Spark中,我可以使用select as:

df.select("*"); //to select everything
df.select(df.col("colname")[, df.col("colname")]); //to select one or more columns
df.select(df.col("colname"), df.col("colname").plus(1)) //to select a column and a calculated column

但是。如何选择所有列加上计算的列?明显 select("*", df.col("colname").plus(1))不起作用(编译错误)。如何在JAVA下完成? 谢谢!

3 个答案:

答案 0 :(得分:11)

只是做:

df.select(df.col("*"), df.col("colName").plus(1));

答案 1 :(得分:1)

您可以使用withColumn()方法,这将为DataFrame创建一个新列。

df.select("*")
  .withColumn("ColName", col("colName").plus(1))

答案 2 :(得分:0)

.select()和.withColumn()方法之间的区别在于,.select()仅返回您指定的列,而.withColumn()返回除定义的DataFrame之外的所有列。

您可以直接使用 withColumn

df.withColumn("ColName", col("colName").plus(1))