Parsing 要在PySpark中动态分析的列

Parsing 要在PySpark中动态分析的列,parsing,dynamic,pyspark,schema,Parsing,Dynamic,Pyspark,Schema,每个新数据中的列名和列数都不同。我希望在PySpark中动态解析列,并为传入的数据集创建唯一的模式 Input 1 : old Name Position_-07/05/2020 Department Peter Grade-A LS Robin Grade-B LS Rosy Grade-A HS Silve

每个新数据中的列名和列数都不同。我希望在PySpark中动态解析列,并为传入的数据集创建唯一的模式

Input 1 : old 
        Name    Position_-07/05/2020  Department
        Peter     Grade-A             LS
        Robin     Grade-B             LS
        Rosy      Grade-A             HS
        Silver    Grade-C             HS
        Jeo       Grade-B             AS


Input 2: df_new
       Name    Position_-07/06/2020  Department   percentage
        Peter     Grade-A             LS            90
        Robin     Grade-A             LS            85
        Rosy      Grade-A             HS            92
        Silver    Grade-C             HS            60
        Jeo       Grade-B             AS            75
        Wilson    Grade-A             HR            93


old_column=["name",Position_07/05/2020,Department]
col_new=[]
col_current=df_new.columns
for filed_name in df_new.columns:
       if filed_name in  old_columns:
              col_new.append(field_name)
new_col=set(col_new+col_current)
schema= [StructField(field_name, StringType(), True) for field_name in new_col]
在那之后我陷入困境。我想要两个数据集的唯一模式

 out put: Name  Position_07/05/2020 position_07/06/2020 Department percentage
          Peter   Grade-A             Grade-A             LS          90
          Robin   Grade-B             Grade-A             LS          85
          Rosy    Grade-A             Grade-A             HS          92
          Silver  Grade-C             Grade-c             HS          60
          Jeo     Grade-B             Grade-B             AS          75
          Wilson   NULL               Grade-A             HR           93

根据您的示例,这只是一个基本连接

old.join(df_new,on=“Name”)

您能否根据输入显示预期的输出?我添加了示例输出如果有两个Peter,会发生什么?下一个文件架构是什么?只是位置的新日期?数据集上没有主键函数。只需向dataframe添加一条新记录,其余值为null。我想看看动态模式,列的数量和名称是不同的。每个月我都会得到一个文件的一些额外的列。因此,我们决定使用“N”字段的唯一模式。