「CSVファイル入力」ステップを使用してPentaho DI変換にもたらされる2つのデータセット(csvファイル)があります。ファイルAには列joincol
があり、値はファイルBの列joincol
に表示されます。ファイルAのデータとファイルBのデータを条件A.joincol = B.joincol
に結合して、ファイルwantcol
の対応するデータをファイルBから取得します。左外部結合によりペンタオDIの行が削除される
かなり簡単なものです。
(必要な)予備ステップとして、結合する列(すなわち、A.joincol
およびB.joincol
)の両方のデータセットを昇順に並べ替えます。
次に、「最初のステップ」としてファイルAのソートされたデータと「第2のステップ」としてファイルBのソートされたデータを使用して「結合タイプ」を選択し、LEFT OUTER。 「第1ステップのキー」セクションの「キーフィールドを取得」を選択し、joincol
が参加する唯一のキーフィールドであることを指定し、「第2ステップのキー」と同じ操作を行います。正確には左外と
-
あるべき行がドロップされる
- 、絶対に不可能がドロップされる
- 行を結合行のグループのものされています
ので、参加の一部を除いて動作します昇順にソートされたときの最後の値
joincol
に対応します。
私は、ファイル内の値がAのjoincol
すべてがExcelでVLOOKUPを行うことによって、ファイルBのjoincol
に表示されていることを確認しました。いずれにせよ、たとえがなくても、値のうちがファイルBに現れたとしても、左外部結合は、少なくとも私が入るすべての行を残すはずです。私は私の探検の早い段階でこのようなクレイジーなバグに遭遇したと信じています。しかし、私はマージジョインのためのドキュメントを読んで、私が必要なすべてのステップ(ここで説明したもの)に従ったと信じています。誰かが私が何かを逃した場合私に知らせることができますか?これはよくあるエラーの結果でしょうか?
ありがとうございました!
最後の行が存在し、CSVファイルの入力行と並べ替え行のステップによって渡されていることを確認しましたか?ソートを下降させてからステップをプレビューすると、行が最初になるはずです。 – Cyrus
ええ、私は大量のデータを処理していないので、各ステップの出力のすべての行を手動で検査しました。彼らは両方の入力に参加していました。 – Rookatu
[mcve]を読んで行動してください。あなたの質問ははっきりしていますが、詳細はもっと必要です。また、どこから「ステップ」を得ているのかを説明してください。 (http://www.bidimensions.com/category/tutorial/?)PS左側のすべての値が右側に表示される場合、左側の結合結果は内側の結合結果と同じになります。では、なぜあなたは入会を辞めたのですか? – philipxy