我使用spark編寫了從mysql到cassandra的數據遷移代碼。我試圖概括它,讓給定一個conf文件它可以遷移任何表。這裏即時通訊停留在2個地方:如何在spark-scala中使用select()和map()?
val dataframe2 = dataframe.select("a","b","c","d","e","f")
從MySQL裝入表後,我只想選擇幾個欄,我有這些列的列表的名稱。這怎麼用呢?val RDDtuple = dataframe2.map(r => (r.getAs(0), r.getAs(1), r.getAs(2), r.getAs(3), r.getAs(4), r.getAs(5)))
在這裏,每個表格可能有不同數量的列,所以如何實現這一點?
我不知道我在代碼中瞭解問題 – eliasah
我已經編寫了im在select()中顯式指定列名稱(我不想要),如果im錯誤會糾正我,但select()會不要將數組或列表作爲參數。另外,如果列數不固定,map()如何改變? –
當然是的,select可以把一個重複的參數作爲參數。至於你的第二個查詢,你可以將你的行轉換成一個帶有隱式函數的字符串,然後在這個字符串上分割以創建一個數組,如果你想將它轉換成一個元組,那麼你需要在後面處理它。 – eliasah