我正在對Cassandra進行SQL遷移,並且在將多個列合併到單個列中時遇到問題。例如,假設我有一個人可以參加一場或多場比賽。我現在每個人都有0或1的比賽。我如何能夠將它作爲一個集合合併到一個列中?Scala Spark將多個列中的值聚合到新列中
SQL Schema
+----------------------------------+
- R_White R_Af_American R_Asian -
- 1 1 1 -
- 0 1 1 -
- 1 0 1 -
- 0 1 0 -
+----------------------------------+
Cassandra Temp Desired Schema
+-------------------------------------------------------------------+
- R_White R_Af_American R_Asian Race -
- 1 1 1 ["White","Af American", "Asian"]-
- 0 1 1 ["Af American", "Asian"] -
- 1 0 1 ["White", "Asian"] -
- 0 1 0 ["Af American"] -
+-------------------------------------------------------------------+
因爲我讀的CSV數據,我計劃在表中讀取從SQL星火,因爲它們是,執行合併(投入到比賽中列),然後刪除所有比其他的那些列新的比賽專欄。 (col(「R_White」)=== 1,somehow_add_to_set).otherwise(...)我不知道如何處理這些數據,但是這似乎並不適合。模式。任何幫助將不勝感激!謝謝!爲實現這一
可以提供該表的架構和你想要添加到該集合的內容:通過數據框的列名映射到這些
when
表達式的硬編碼值? –這是上面更清楚嗎?我編輯了表格並添加了一些我的場景的更多解釋 –
Tzach已經回答了它。沒有幫助嗎? –