我有两个形状相同的 Dataframe ,每个 Dataframe 有3列,我想看看对于每对col_1, col_2
,基准测试中的值是否等于第二个 Dataframe 中的值,并输出有问题的行:
input_benchmark =
col_1 col_2 col_to_check
girl 12 Primary
boy 14 Secondary
baby 1 Nursery
girl_1 10 Secondary
girl_2 10 Secondary
input_df =
col_1 col_2 col_to_check
girl 12 Primary
boy 14 Secondary
baby 1 Secondary
toddler 3 Kindergarten
girl_1 10 null
girl_2 10 null
我的代码工作:
def check_func(input_benchmark, input_df):
df_new = input_df.merge(input_benchmark, on=['col_1', 'col_2'], suffixes=(None, '_actual')).query('col_to_check != col_to_check_actual')
return df_new
col_1 col_2 col_to_check col_to_check_actual
baby 1 Secondary Nursery
girl_1 10 null Secondary
girl_2 10 null Secondary
在Spark中可以这样做吗?我还没有找到任何类似于我使用的query
函数的东西。
1条答案
按热度按时间wfveoks01#
在spark中,您的
query
实际上是一个filter
:编辑
要处理
NULL
值,需要使用coalesce
,并带有某种类型的默认返回值: