def apply_mapping()

in awsglue/dynamicframe.py [0:0]


    def apply_mapping(self, mappings, case_sensitive = False, transformation_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0):
        def _to_java_mapping(mapping_tup):
            if not isinstance(mapping_tup, tuple):
                raise TypeError("Mapping must be specified as a tuple. Got " +
                                mapping_tup)

            tup2 = self.glue_ctx._jvm.scala.Tuple2
            tup3 = self.glue_ctx._jvm.scala.Tuple3
            tup4 = self.glue_ctx._jvm.scala.Tuple4
            java_cls = self.glue_ctx._jvm.MappingSpec

            if len(mapping_tup) == 2:
                return java_cls.apply(tup2.apply(mapping_tup[0], mapping_tup[1]))
            elif len(mapping_tup) == 3:
                return java_cls.apply(tup3.apply(mapping_tup[0], mapping_tup[1], mapping_tup[2]))
            elif len(mapping_tup) == 4:
                return java_cls.apply(tup4.apply(mapping_tup[0], mapping_tup[1], mapping_tup[2], mapping_tup[3]))
            else:
                raise ValueError("Mapping tuple must be of length 2, 3, or 4"
                                 "Got tuple of length " + str(len(mapping_tup)))

        if isinstance(mappings, tuple):
            mappings = [mappings]

        mappings_list = [ _to_java_mapping(m) for m in mappings ]

        new_jdf = self._jdf.applyMapping(
            self.glue_ctx._jvm.PythonUtils.toSeq(mappings_list),
            case_sensitive,
            transformation_ctx,
            _call_site(self._sc, callsite(), info), long(stageThreshold), long(totalThreshold))

        return DynamicFrame(new_jdf, self.glue_ctx, self.name)