2024-04-27 04:17:36 发布
网友
我在Spark中有2个数据帧(PySpark)
DF_A col1 col2 col3 a 1 100 b 2 300 c 3 500 d 4 700
我想用DF_B.col3值更新DF A的列。在
目前我正在做
df_new = df_a.join(df_b, df_a.col1 == df_b.col1,'inner')
它给了我1×2倍和3×2倍的能量。 现在我必须去掉不相关的单元格来显示0。有什么更好的方法?不使用自定义项。在
如果我正确理解您的问题,您正在尝试执行以下操作:
更新dataframe上的table_a a,table_b SET a.col3=b.col3,其中a.col1=b.col1。如果B中不存在,则0。(参考评论)
a = [("a",1,100),("b",2,300),("c",3,500),("d",4,700)] b = [("a",150),("b",350),("d",650)] df_a = spark.createDataFrame(a,["col1","col2","col3"]) df_b = spark.createDataFrame(b,["col1","col3"]) df_a.show() # + + + + # |col1|col2|col3| # + + + + # | a| 1| 100| # | b| 2| 300| # | c| 3| 500| # | d| 4| 700| # + + + + df_b.show() # I have removed an entry for the purpose of the demo. # + + + # |col1|col3| # + + + # | a| 150| # | b| 350| # | d| 650| # + + +
您需要执行outer join,然后执行coalesce:
outer join
coalesce
如果我正确理解您的问题,您正在尝试执行以下操作:
更新dataframe上的table_a a,table_b SET a.col3=b.col3,其中a.col1=b.col1。如果B中不存在,则0。(参考评论)
您需要执行
^{pr2}$outer join
,然后执行coalesce
:相关问题 更多 >
编程相关推荐