2
JavaでSparkを使用しています.2つのデータフレーム間で結合を行うと、スキーマの順序が異なります。Spark(JAVA)での結合操作後のスキーマ順序の変更
後でHBaseテーブルにデータを挿入したいので、注文を保存する必要があります。
ここでは、seqのリストを使用したソリューションがあります。私はJavaでこれを行う方法を知りましたか?
JavaでSparkを使用しています.2つのデータフレーム間で結合を行うと、スキーマの順序が異なります。Spark(JAVA)での結合操作後のスキーマ順序の変更
後でHBaseテーブルにデータを挿入したいので、注文を保存する必要があります。
ここでは、seqのリストを使用したソリューションがあります。私はJavaでこれを行う方法を知りましたか?
私が見つけた解決策は、(org.apache.spark.sql.Columnの)列の配列を作成することです。うまくいけば、selectを実行すると配列の順序が保持されます。他にもこのソリューションが見つからなかったので、ここに投稿することにしました。
//after making a join into my DF called "joinedDF" I do this:
//example of schema from string
String schemaFull= "id_meta;source_name_meta;base_name_meta;...";
String[] strColumns = schemaFull.split(";");
org.apache.spark.sql.Column[] selectedCols = new org.apache.spark.sql.Column[strColumns.length];
for (int i=0; i < strColumns.length; i++){
selectedCols[i] = col(strColumns[i]);
}
joinedDF = joinedDF.select(selectedCols);