1. 程式人生 > 其它 >Pyspark連線兩個dataframe,橫向連線,(可能是中文網際網路上首個正確方法)

Pyspark連線兩個dataframe,橫向連線,(可能是中文網際網路上首個正確方法)

技術標籤:問題出現我就告訴大家

簡單的問題,橫向連線兩個df,如下圖所示。

pyspark中沒有類似padas中的pd.concat([df1,df2],axis='columns')用以連線兩個df,中文搜尋半天都是些文不對題的答案,還是得科學搜尋,牆外出真知。特此記錄解決辦法:

from pyspark.sql.functions import monotonically_increasing_id as mi
id=mi()
df1 = df1.withColumn("match_id", id)
cont_data = cont_data.withColumn("match_id", id)
cont_data = cont_data.join(df1,df1.match_id==cont_data.match_id, 'inner').drop(df1.match_id)

pyspark只能用join方法橫向連線,因此需要構造一個臨時的相同列使用。構造完之後丟棄即可。