输入数据框1
输入数据框2
来自输入数据框1和2的连接数据框
预期成果
我有两个输入pyspark Dataframe ,如图所示。我必须连接这两个数据框架,并在列名“field 1”和“field 2”中-我需要从提到的相应列名的Dataframe 1填充值(如预期的输出数据框架所示)。)
ttcibm8c1#
加入df1和df2后,可以使用when和otherwise。为了使事情更具有一般性,我们可以编写一个函数,为给定的列创建when + otherwise语句。
df1
df2
when
otherwise
def create_condition(col_name): return F.when( F.col(col_name) == 'data1', F.col('data1') ).when( F.col(col_name) == 'data2', F.col('data2') ).otherwise( None ) df1.join( df2, on='common_column', how='inner' ).withColumn( "field1", create_condition("field1") ).withColumn( "field2", create_condition("field2") ) +-------------+-----+-----+------+------+ |common_column|data1|data2|field1|field2| +-------------+-----+-----+------+------+ | A| 1| 2| 1| 2| | B| 3| 4| 4| 3| | C| 5| 6| 5| null| +-------------+-----+-----+------+------+
1条答案
按热度按时间ttcibm8c1#
加入
df1
和df2
后,可以使用when
和otherwise
。为了使事情更具有一般性,我们可以编写一个函数,为给定的列创建when + otherwise语句。