def isJoinableWith(self, referenceTable, keyMap, *keyMaps):
     """
     Checks whether a join between this table and the given reference table
     returns any results. This can be seen as a weaker version of the foreign
     key check, as it requires only partial matches.
     Args:
         referenceTable (pyspark.sql.dataframe.DataFrame): Table to which the
             foreign key is pointing
         keyMap (Tuple[str, str]): Column mapping from this table to the
             reference one ("column1", "base_column1")
         keyMaps (Tuple[str, str]):  Column mappings from this table to the
             reference one ("column1", "base_column1")
     Returns:
     core.Check object including this constraint
     """
     jvmCheck = self.jvmCheck.isJoinableWith(
         referenceTable._jdf,
         jc.tuple2(self._jvm, keyMap),
         jc.iterable_to_scala_list(
             self._jvm,
             map(lambda t: jc.tuple2(self._jvm, t), keyMaps)
         )
     )
     return Check(
         self.dataFrame,
         self.name,
         self.cacheMethod,
         self.id,
         jvmCheck
     )
 def hasForeignKey(self, referenceTable, keyMap, *keyMaps):
     """
     Checks whether the columns with the given names define a foreign key to
     the specified reference table.
     Args:
         referenceTable (pyspark.sql.dataframe.DataFrame): Table to which the
             foreign key is pointing
         keyMap (Tuple[str, str]): Column mapping from this table to the
             reference one ("column1", "base_column1")
         keyMaps (Tuple[str, str]):  Column mappings from this table to the
             reference one ("column1", "base_column1")
     Returns:
     core.Check object including this constraint
     """
     jvmCheck = self.jvmCheck.hasForeignKey(
         referenceTable._jdf,
         jc.tuple2(self._jvm, keyMap),
         jc.iterable_to_scala_list(
             self._jvm,
             map(lambda t: jc.tuple2(self._jvm, t), keyMaps)
         )
     )
     return Check(
         self.dataFrame,
         self.name,
         self.cacheMethod,
         self.id,
         jvmCheck
     )
Example #3
0
    def get_jvm_reporter(self, jvm):
        if not self._jvm_reporter:
            self._jvm = jvm
            jvm_email_reporter = jvm.de.frosner.ddq.reporters.EmailReporter
            to = jc.iterable_to_scala_set(jvm, self.to)

            if self.cc is None:
                cc = getattr(jvm_email_reporter, "apply$default$3")()
            else:
                cc = jc.iterable_to_scala_set(jvm, self.cc)

            if self.subjectPrefix is None:
                subjectPrefix = getattr(jvm_email_reporter,
                                        "apply$default$4")()
            else:
                subjectPrefix = self.subjectPrefix

            if self.smtpPort is None:
                smtpPort = getattr(jvm_email_reporter, "apply$default$5")()
            else:
                smtpPort = self.smtpPort

            if self.from_ is None:
                from_ = getattr(jvm_email_reporter, "apply$default$6")()
            else:
                from_ = self.from_

            if self.usernameAndPassword is None:
                usernameAndPassword = getattr(jvm_email_reporter,
                                              "apply$default$7")()
            else:
                usernameAndPassword = jc.option(
                    jvm, (jc.tuple2(jvm, self.usernameAndPassword)))

            if self.reportOnlyOnFailure is None:
                reportOnlyOnFailure = getattr(jvm_email_reporter,
                                              "apply$default$8")()
            else:
                reportOnlyOnFailure = self.reportOnlyOnFailure

            if self.accumulatedReport is None:
                accumulatedReport = getattr(jvm_email_reporter,
                                            "apply$default$9")()
            else:
                accumulatedReport = self.accumulatedReport

            self._jvm_reporter = jvm_email_reporter(self.smtpServer, to, cc,
                                                    subjectPrefix, smtpPort,
                                                    from_, usernameAndPassword,
                                                    reportOnlyOnFailure,
                                                    accumulatedReport)

        return self._jvm_reporter
    def get_jvm_reporter(self, jvm):
        if not self._jvm_reporter:
            self._jvm = jvm
            jvm_email_reporter = jvm.de.frosner.ddq.reporters.EmailReporter
            to = jc.iterable_to_scala_set(jvm, self.to)

            if self.cc is None:
                cc = getattr(jvm_email_reporter, "apply$default$3")()
            else:
                cc = jc.iterable_to_scala_set(jvm, self.cc)

            if self.subjectPrefix is None:
                subjectPrefix = getattr(jvm_email_reporter, "apply$default$4")()
            else:
                subjectPrefix = self.subjectPrefix

            if self.smtpPort is None:
                smtpPort = getattr(jvm_email_reporter, "apply$default$5")()
            else:
                smtpPort = self.smtpPort

            if self.from_ is None:
                from_ = getattr(jvm_email_reporter, "apply$default$6")()
            else:
                from_ = self.from_

            if self.usernameAndPassword is None:
                usernameAndPassword = getattr(jvm_email_reporter, "apply$default$7")()
            else:
                usernameAndPassword = jc.option(jvm, (jc.tuple2(jvm, self.usernameAndPassword)))

            if self.reportOnlyOnFailure is None:
                reportOnlyOnFailure = getattr(jvm_email_reporter, "apply$default$8")()
            else:
                reportOnlyOnFailure = self.reportOnlyOnFailure

            if self.accumulatedReport is None:
                accumulatedReport = getattr(jvm_email_reporter, "apply$default$9")()
            else:
                accumulatedReport = self.accumulatedReport

            self._jvm_reporter = jvm_email_reporter(
                self.smtpServer, to, cc, subjectPrefix, smtpPort, from_,
                usernameAndPassword, reportOnlyOnFailure, accumulatedReport
            )

        return self._jvm_reporter