0
我有兩列數據框,列表爲列。除了數據框中列表的順序不同這一事實外,兩個數據幀都是相同的。
例如。模式:(ID文本,名稱列表 '<' 文本>)
DF1:(5,WrappedArray(ABC,PQR,XYZ))
DF2:(5,WrappedArray(ABC,XYZ,PQR))
當我使用相交,我沒有得到這個記錄的結果。我怎樣才能得到這些記錄的交集?具有列表列的相交數據幀
我有兩列數據框,列表爲列。除了數據框中列表的順序不同這一事實外,兩個數據幀都是相同的。
例如。模式:(ID文本,名稱列表 '<' 文本>)
DF1:(5,WrappedArray(ABC,PQR,XYZ))
DF2:(5,WrappedArray(ABC,XYZ,PQR))
當我使用相交,我沒有得到這個記錄的結果。我怎樣才能得到這些記錄的交集?具有列表列的相交數據幀
我認爲你是對的,最簡單的方法是排序列表列。
val sortListFunc = udf((inputList: WrappedArray[String]) => {
inputList.sorted
})
val df1Sorted = df1
.withColumn("name_sorted",sortListFunc(col("name"))
.select($"id","name_sorted".as("name"))
val df2Sorted = df2
.withColumn("name_sorted",sortListFunc(col("name"))
.select($"id","name_sorted".as("name"))
然後你應該可以加入或相交。
作爲一種替代方法,有沒有一種方法來排序數據框中的列表? –