dy.drop_fields() 对比 DropFields.apply()

dy.drop_fields() vs DropFields.apply()

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

DynamicFrame的一个方法:drop_fields()
和 class 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 通常建议转换 classes,但它们对我来说似乎更冗长且可读性更差。

我只能回答部分问题:

Is there any difference between them?

不,Class-Style 转换实际上调用底层 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)

Is one more efficient?

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

Is there a best practice when to use which?

不知道。