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")))
      )
    }