所以我基本上是在尝试通过数据框架实现某些目标。基本上,我有一个数据框,该数据框的一列的时间戳以毫秒为单位(MS),并且我想创建一个新列,例如,该列具有基于某个步骤的所属组。例如,如果我定义一个180000的步长(3分钟),则我想要这样的内容:
因此,在该示例中,正如我想做的那样,我有一个新列,每次MS超出该范围时,它的增量基本上为180000 MS。
由于我是Spark和Python的新手,所以我的第一种方法是在180000步上执行循环,并在比较MS之后添加组。问题在于这种方法的性能不是很好。
for i in range(0, max_time, 180000):
df = originalDf.where((originalDf['MS'] > i) & (originalDf['MS'] <= i + 180000))
df = df.withColumn("MS_GROUP", lit(i))
我已经检查了 groupBy 函数,并尝试使用 Window ,但是没有运气。是否有更好的选择来实现这一目标?非常感谢。
答案 0 :(得分:1)
让我知道我是否正确理解。简单地:
feed_dict
没有for循环。