使用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方法可能效率稍高,因为函数调用的性能开销很小,但并不明显。
何时使用哪个有最佳实践吗?
不知道。