这是一个总的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下完成?
谢谢!
答案 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))