我有以下问题:
我有一个架构(1)和一个带有其他架构的DataFrame(2)。 DataFrames架构与另一个架构只有一个区别,它还有一个列。 现在,我想从DataFrame中选择已在schema(1)中指定的列。
示例:
StructType schema; //specified in constructor
DataFrame df_old; //given as parameter
DataFrame df_new = df_old.select(schema.fieldNames());
这不会起作用,因为select()需要两个参数,只给出一个参数。所以,我的想法是:
StructType schema; //specified in constructor
DataFrame df_old; //given as parameter
String[] columns = schema.fieldNames(); //get column names as string array
String first_col = columns[0]; // get first element of string array
columns = Arrays.copyOfRange(columns, 1, columns.length); //remove first element
DataFrame df_new = df_old.select(first_col,columns);
我认为,这不是最好的方法,因为copyOfRange()会耗费大量时间。特别是,如果有很多列,我需要多次运行。
有人有更好的主意吗?
感谢您的回答。 :)