代码之家  ›  专栏  ›  技术社区  ›  Palkin Jangra

使用循环在Pyspark数组元素上和元素本身内迭代两次

  •  0
  • Palkin Jangra  · 技术社区  · 3 年前

    我有一个住房数据集,其中既有分类变量,也有数字变量。在这个数据集中,我创建了另一个仅包含数值_属性的数据集,其中数组中包含数值_属性。 数据集-数组值。 数字属性 [卧室数量、价格、年龄]

    现在我想先循环数值_属性数组,然后在每个元素中计算每个数值_属性的平均值。

    数据集1

    Age Price Location
    20  56000  ABC
    30  58999  XYZ
    

    数据集2(数据帧中的数组)

    Numeric_attributes 
    [Age, Price]
    

    期望输出

    Mean(Age)  Mean(Price)
    25         57000
    

    当前尝试

     def minimum_value(df2):
        min_value = lambda x: x.min()
        for a in df2.collect():
            for b in a.collect():
                min_udf = F.udf(lambda row: [min_value(x) for x in b])
                df2.withColumn('minimum_value', min_udf(F.col('Numerical_attributes').cast("array<int>")))
            return df2  
    
    0 回复  |  直到 3 年前