私は2つのテーブルを持っています.1つは値を持ち、もう1つは参照値を持っています。私はテーブル1をテーブル2の値に置き換えたいが、これを行うためのエレガントな方法は見つからない。ルックアップテーブル値の列を置き換えます
Table 1 (main)
name age country last_visited
x1 a1 UK 2016
x2 a3 US 2017
x3 a1 China 2015
Table 2 (lookup)
code value date_updated
x1 Dom 2017
a1 25 2017
x2 Peter 2017
x3 Alice 2017
a3 26 2017
Final Table (What i want)
name age country last_visited
Dom 25 UK 2016
Peter 26 US 2017
Alice 25 China 2015
私は表2に表1に参加しようとしたが、その後これは私が後から列をドロップ/交換すると、私は列ごとに個別にこれをしなければならない関係しました。私は上記のルックアップ値を持っている列の小さな部分を与えただけですが、実際には同じテーブルにルックアップ値を含む約8列あります。どのように私はこれを達成するのですか?
val unsanitised_data = table1.join(table2, table1.col("name") === table2.col("code"), "left").drop("last_visited", "name", "code")
名前に「値」の名前を変更し、年齢や他の列に同じことをもう一度行う必要があります。これを行うにはこれが最善の方法ですか?
交換の論理は何ですか? – eliasah
名前のロジックは、table1.col( "name")=== table2.col( "code")、年齢table1.col( "age")=== table2.col( "code") – CodeGeek123