【发布时间】:2022-01-04 17:31:59
【问题描述】:
我正在尝试使用以下方法动态重命名 Pyspark 中的列。但是只有一列被重命名而不是全部
target_schema : ['customer_Number', ' product_Number', ' Payment_Term', ' DateTime', ' Company_ID', ' Company_Number', ' Col1', ' Col2']
source_schema : ['customerID', ' productID', ' Paymentterm', ' datetime', ' xyzID']
display(df_xyz)
df_rename_schema = df_xyz.select([col(c).alias(source_target_mapping.get(c, c)) for c in df_xyz.columns])
df_modified_source_schema = df_rename_schema.columns
print(df_modified_source_schema)
Output : ['productID', 'customer_Number', 'Paymentterm', 'datetime', 'xyzID']
Expected Output : ['product_Number', ' customer_Number', ' Payment_Term', 'DateTime','Company_ID']
请帮助这里出了什么问题以及如何实现解决方案
【问题讨论】:
-
你能分享
source_target_mapping映射吗,我看到列名包含空格,也许字典不包含空格,迫使source_target_mapping.get(c, c)返回默认值,即源列名。