我在pyspark中有两个数据框,如下所示:
数据框A:总计1000条记录
+-----+
|Name |
+-----+
| a|
| b|
| c|
+-----+
数据框B:总共3条记录
+-----+
|Zip |
+-----+
|06905|
|06901|
|06902|
+-----+
我需要在数据框A中添加一个名为Zip的新列,并使用数据框B中随机选择的值填充值。因此,数据框A的外观如下所示:
+-----+-----+
|Name |Zip |
+-----+-----+
| a|06901|
| b|06905|
| c|06902|
| d|06902|
+-----+-----+
请帮我写这段代码。非常感谢您的帮助。
我在Azure Databricks上运行此程序,显然,quinn不在其中。因此,不能不幸使用奎因。
如果b
很小(3行),则可以将其收集到Python列表中并将其作为数组列添加到中a
。然后,您可以使用获取随机元素shuffle
。
import pyspark.sql.functions as F
df = a.withColumn(
'Zip',
F.shuffle(
F.array(*[F.lit(r[0]) for r in b.collect()])
)[0]
)
df.show()
+----+-----+
|Name| Zip|
+----+-----+
| a|06901|
| b|06905|
| c|06902|
| d|06901|
+----+-----+
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句