def apply()

in awsglue/dataframe_transforms/apply_mapping.py [0:0]


    def apply(frame, mappings):
        jvm = frame.sql_ctx._jvm

        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 = jvm.scala.Tuple2
            tup3 = jvm.scala.Tuple3
            tup4 = jvm.scala.Tuple4

            if len(mapping_tup) == 2:
                return tup2.apply(mapping_tup[0], mapping_tup[1])
            elif len(mapping_tup) == 3:
                return tup3.apply(mapping_tup[0], mapping_tup[1], mapping_tup[2])
            elif len(mapping_tup) == 4:
                return 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_seq = jvm.PythonUtils.toSeq([_to_java_mapping(m) for m in mappings])

        java_import(jvm, "com.amazonaws.services.glue.dataframeTransforms.ApplyMapping")

        return DataFrame(jvm.ApplyMapping.apply(frame._jdf, mappings_seq), frame.sql_ctx)