You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python内连接返回空行但Contour可匹配700万订单号求助

内连接匹配异常排查求助

我在代码仓库执行Python转换操作,从三个数据集(caufv_df、afpo_df、prps_df)中选取列后进行内连接。当以OrderNumber字段连接caufv_df与afpo_df时,返回结果为空行;但在Contour中执行相同的内连接操作,能匹配到700万条订单号。

已完成的排查动作:

  • 核对两边OrderNumber字段的数据类型,确认匹配
  • 尝试多种Spark连接语法,问题未解决
  • 移除substring和cast函数,直接使用原始字段连接,结果仍为空
  • 注释掉的另一个内连接(afpo_df与prps_df基于WBS_Element连接)可正常运行,排除环境与基础语法错误

恳请协助排查问题,代码如下:

from pyspark.sql import functions as F
from transforms.api import transform_df, Input, Output


@transform_df(
    Output("redacted file path"),
    caufv_df=Input("redacted file path"),
    afpo_df=Input("redacted file path"),
    prps_df=Input("redacted file path"),
)
def compute(caufv_df, afpo_df, prps_df):
 
 # prep caufv_df for joining
    caufv_df = caufv_df.select(
        F.col('opertn_task_list_no_|_aufpl').alias('aufpl'),
        F.col('object_number_|_objnr').alias('objnr'),
        F.substring(F.col('order_|_aufnr'), 4, 9).cast('integer').alias('OrderNumber'),
        # F.col('order_|_aufnr').cast('integer').alias('order'),
        F.col('technical_completion_|_idat2').alias('completed_date'),
        F.col('order_type_|_auart').alias('Order_Type')
    )

# prep afpo_df for joining
    afpo_df = afpo_df.select(
       F.col('order_item_quantity_|_psmng').alias('Operation_Qty_AFPO'),
       F.substring(F.col('order_|_aufnr'), 4, 9).cast('integer').alias('OrderNumber'),
       #F.col('order_|_aufnr').cast('integer').alias('order'),
       F.col('wbs_element_|_projn').alias('WBS_Element')
    )

# prep prps_df for joining
    prps_df = prps_df.select(
        F.col('wbs_element_|_posid').alias('WBS'),
        F.col('applicant_no_|_astnr').alias('Applicant_Description'),
        F.col('applicant_|_astna').alias('ApplicantName'),
        F.col('wpc_|_zzwpc').alias('WPC'),
        F.col('material_|_zzmatnr').alias('material_zzmatnr'),
        F.col('description_|_post1').alias('Descriptionprps'),
        F.col('customer_code_|_zzccd').alias('CustCode'),
        F.col('wbs_element_|_pspnr').alias('WBS_Element')
    )

# join caufv_df with afpo_df and prps_df to create the final dataframe


    joined_df = caufv_df.join(afpo_df, 'OrderNumber', 'inner')
    #joined_df = afpo_df.join(prps_df, 'WBS_Element', 'inner')
    

    return joined_df

内容的提问来源于stack exchange,提问作者discobuffalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:00:35