有一个sql.dataframe,属性分别为eid(主键)、references(数据类型为array),其中,references中的属性为许多eid组成的数组。现在要求添加新的一列属性,数据类型为array,每行的arry的数据为被其他行的reference包含的eid
时间: 2023-03-29 16:04:17 浏览: 133
您好,我可以回答您的问题。针对您的需求,可以使用以下代码实现:
```python
import pyspark.sql.functions as F
# 假设您的dataframe名为df,新的一列属性名为new_references
df = df.withColumn("new_references", F.array([F.col("eid")]).\
repeat(F.size(F.col("references"))))
# 将新的一列属性添加到references中
df = df.withColumn("references", F.concat(F.col("references"), F.col("new_references")))
# 删除新的一列属性
df = df.drop("new_references")
```
以上代码中,我们首先使用`withColumn`方法创建了一个新的一列属性`new_references`,其中每行的数据为被其他行的`references`包含的`eid`。具体实现方式是,使用`repeat`方法将当前行的`eid`重复`references`中`eid`的个数次,然后使用`array`方法将这些重复的`eid`组成一个数组。接着,我们将新的一列属性添加到`references`中,最后删除新的一列属性即可。
希望这个回答能够帮助到您,如果您有任何其他问题,欢迎随时提出。
阅读全文