【发布时间】:2018-07-11 23:45:19
【问题描述】:
我有一个有 10 行和 2 列的 DataFrame:一个带有随机标识符值的 ID 列和一个用 None 填充的 VAL 列。
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)
现在假设我要更新 VAL 列,其中 3 行的值为“lets”、3 行的值为“bucket”,4 行的值为“这个”。
在 PySpark 中是否有一种直接的方法?
注意:ID值不一定是连续的,桶分布不一定是均匀的
【问题讨论】:
-
是 - 选择哪些行获得哪些新值的标准是什么?
-
用户定义的标准不基于其他列的值。整个数据集被视为平等。
-
您必须接受近似值,或者在一般情况下不能很好地扩展的解决方案。很大程度上取决于唯一标签的数量和数据量。
-
更新有什么标准吗?
-
@user8371915 唯一标签不会很多,但行数在几百万的数量级
标签: apache-spark pyspark