【问题标题】:Making Many Empty Columns in PySpark在 PySpark 中创建许多空列
【发布时间】:2018-11-01 18:49:39
【问题描述】:

我有一个包含许多数据框的列表,每个数据框都有一个主架构的子架构。为了合并这些数据框,我需要在所有数据框之间构建一个通用模式。我的想法是我需要为每个数据框的所有缺失列创建空列。我平均有大约 80 个缺失的特征和 100 个数据框。

这有点重复或受到Concatenate two PySpark dataframes的启发

我目前正在以这种方式实现:

from pyspark.sql.functions import lit

for df in dfs:    # list of dataframes
    for feature in missing_features:   # list of strings
        df = df.withColumn(feature, lit(None).cast("string"))

这似乎需要花费大量时间。有没有更快的方法将这些数据帧与 null 来代替缺失的特征?

【问题讨论】:

    标签: dataframe pyspark


    【解决方案1】:

    您可以通过将代码替换为:

    cols = ["*"] + [lit(None).cast("string").alias(f) for f in missing_features]
    
    dfs_new = [df.select(cols) for df in dfs]
    

    【讨论】:

    • 对于数据子集,这个方法用了 455ms,我上面贴的方法用了 13s。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    相关资源
    最近更新 更多