private def hasColumn()

in auditlog/src/main/scala/com/gerritforge/analytics/auditlog/spark/dataframe/ops/DataFrameOps.scala [37:54]


    private def hasColumn(path: String) = Try(dataFrame(path)).isSuccess

    private def ifExistThenGetOrNull(column: String, targetColumn: => Column) =
      if (hasColumn(column)) targetColumn else lit(null)

    def hydrateWithUserIdentifierColumn(
        userIdentifierCol: String,
        gerritAccounts: GerritUserIdentifiers
    ): DataFrame = {
      def extractIdentifier: UserDefinedFunction =
        udf((who: Int) => gerritAccounts.getIdentifier(who))

      dataFrame.withColumn(
        userIdentifierCol,
        ifExistThenGetOrNull("who", extractIdentifier(col("who")))
      )

    }