作为spark中的新手,我找不到一个函数在这个问题中由pyspark在sql数据框中插入一行。例如,我有一个类似于以下结构的数据框:
+----------+-----+
| Time|Value|
+----------+-----+
|1364763600|115.0|
|1364763601|119.0|
|1364763603|116.5|
+----------+-----+
现在,我想在第二行和第三行之间的数据框中插入一行,索引是1364763602
,跟在第二行的索引之后,该值应该与第二行相同, 119
在这种情况下,最终数据框应该是:
+----------+-----+
| Time|Value|
+----------+-----+
|1364763600|115.0|
|1364763601|119.0|
|1364763602|119.0|
|1364763603|116.5|
+----------+-----+
有没有有效的方法来实现这一点,真正的数据帧存储在不同的节点中。
答案 0 :(得分:3)
DataFrame是不可变的分布式数据结构,因此您无法插入数据。更重要的是,数据框架上没有定义排序,因此您无法在记录之前或之后插入记录。更重要的是,即使现在也没有,如果2个记录在集群中的同一节点上(除非你指定分区并测试你的记录调用getPartition)。您所能做的就是创建一个记录的DataFrame并将其与旧的df1.union(df2)