dy.drop_fields() vs DropFields.apply()



使用Glue时,我遇到了两种从动态框架中删除列的方法。

DynamicFrame的一个方法:drop_fields((
和类DropFields.apply((

它们是这样使用的:

dy_reduced_data = dy_raw_data.drop_fields(cols_to_drop)
dy_reduced_data = DropFields.apply(frame = dy_raw_data, paths = [cols_to_drop])

现在我想知道:它们之间有什么区别吗?一个更有效率吗?他们似乎有相同的选择范围。有没有最好的做法可以使用这两种方法中的哪一种?或者什么时候使用哪个?

Glue通常建议使用转换类,但它们对我来说似乎要长得多,可读性也较差

我只能回答部分问题:

它们之间有什么区别吗?

不,类样式转换实际上调用了底层的DynamicFrame方法:

来自图书馆:

class DropFields(GlueTransform):
"""
Drop fields within a DynamicFrame
# ... (ommited stuff for brevity, the __call__ matters)
"""
def __call__(self, frame, paths, transformation_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0):
return frame.drop_fields(paths, transformation_ctx, info, stageThreshold, totalThreshold)

一个更有效率吗?

DynamicFrame方法可能效率稍高,因为函数调用的性能开销很小,但并不明显。

何时使用哪个有最佳实践吗?

不知道。

最新更新