簡體   English   中英

Scala數據框:如何使用兩個數據框之間的條件向數據框添加列?

[英]Scala Dataframe : How can I add a column to a Dataframe using a condition between two Dataframes?

我有兩個數據框:

- UsersDF: (column_name:type) => [ (name,String) (age,Int) (Like,Int) ]
 - ClusterDF: => [(cluster,bigInt)  (names,String)]

clusterDF的名稱列中的一行由與空格字符("\\ t").分隔的用戶字符串組成("\\ t"). 用戶位於一個群集中。

我想將集群列添加到userDF數據框,檢查字段名稱。 我該怎么辦?

例:

clusterDF的行: 1, "ABCD"

userDF的行: "A", 23, 150 23、150

在過程結束時:userDF行: "A", 23, 150, 1 23、150、1

做到這一點的方法是將兩個數據框連接起來。 為此,您需要執行兩個步驟。 首先是將clusterDF轉換為可用形式:

val fixed = clusterDF.withColumn("name", explode(split($"names", " ")))

我們首先按名稱將名稱分開,以獲取名稱數組,然后對其進行分解以獲取每個值的一行。

現在只需將兩者結合即可:

usersDF.join(fixed, "name")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM