我有一个列表和一个表,如下所示,我需要做的是遍历表中项目名称列中的值,并找到列表中可用但表中缺少的项目名称(如果有的话)。然后,我需要将缺少的item_name插入到表中,其中item value列为空值,timestamp列的时间戳与其他时间戳相同。
list_of_tags = [“item_1”,“item_2”,“item_3”,“item_4”,“item_5”,“item_1_a”,“item_1_b”,“item_1_c”,“item_1_d”,“item_1_e”]
|item_name | item_value | timestamp |
|:------- |:------:| ----------------------------:|
| item_1 | 23.2 | 2023-05-08T20:00:00.000+0000 |
| item_2 | 45.2 | 2023-05-08T20:00:00.000+0000 |
| item_3 | 34.3 | 2023-05-08T20:00:00.000+0000 |
| item_4 | 56.3 | 2023-05-08T20:00:00.000+0000 |
| item_1_a | 23.2 | 2023-05-08T20:00:00.000+0000 |
| item_2_b | 45.2 | 2023-05-08T20:00:00.000+0000 |
| item_3_c | 34.3 | 2023-05-08T20:00:00.000+0000 |
| item_4_d | 56.3 | 2023-05-08T20:00:00.000+0000 |
我想要结果是
|item_name | item_value | timestamp |
|:------ |:------------:| ----------------------------:|
| item_1 | 23.2 | 2023-05-08T20:00:00.000+0000 |
| item_2 | 45.2 | 2023-05-08T20:00:00.000+0000 |
| item_3 | 34.3 | 2023-05-08T20:00:00.000+0000 |
| item_4 | 56.3 | 2023-05-08T20:00:00.000+0000 |
| item_4 | 56.3 | 2023-05-08T20:00:00.000+0000 |
| item_5 | null | 2023-05-08T20:00:00.000+0000 |
| item_1_a | 23.2 | 2023-05-08T20:00:00.000+0000 |
| item_2_b | 45.2 | 2023-05-08T20:00:00.000+0000 |
| item_3_c | 34.3 | 2023-05-08T20:00:00.000+0000 |
| item_4_d | 56.3 | 2023-05-08T20:00:00.000+0000 |
| item_5_e | null | 2023-05-08T20:00:00.000+0000 |
如何使用Pyspark实现此操作?
任何帮助都非常感谢
1条答案
按热度按时间lstz6jyr1#
使用unionByName函数获取原始DataFrame。这里是你可以做的
从上面的库中,您必须导入所需的数据类型和函数。
从给定表创建DataFrame
现在将timestamp列转换为TimestampType()
从标签列表中创建DataFrame
在原始DataFrame中添加缺少的项名称,并替换空值
返回更新后的DataFrame