代码之家  ›  专栏  ›  技术社区  ›  TMichel

pyspark:更新给定数据帧行数的列值

  •  0
  • TMichel  · 技术社区  · 8 年前

    我有一个 DataFrame 10行2列: ID 具有随机标识符值的列和 VAL 列填充 None .

    vals = [
            Row(ID=1,VAL=None),
            Row(ID=2,VAL=None),
            Row(ID=3,VAL=None),
            Row(ID=4,VAL=None),
            Row(ID=5,VAL=None),
            Row(ID=6,VAL=None),
            Row(ID=7,VAL=None),
            Row(ID=8,VAL=None),
            Row(ID=9,VAL=None),
            Row(ID=10,VAL=None)
    ]
    df = spark.createDataFrame(vals)
    

    现在假设我想更新 瓦尔 值为“的3行的列” “,3行带值” 水桶 “和4行数值” “。

    在pyspark中有没有一种简单的方法可以做到这一点?

    注:id值不一定连续,bucket分布不一定均匀

    1 回复  |  直到 8 年前
        1
  •  0
  •   vvg    8 年前

    row_number() row_num [min_row_num, max_row_num, label]

    df1.join(df2, 
       on=col('df1.row_num').between(col('min_row_num'), col('max_row_num'))
      )
    .select('df1.*', 'df2.label')
    
    推荐文章