code: def unionByName(self, other):
          
          return DataFrame(self._jdf.unionByName(other._jdf), self.sql_ctx)
docs: Returns a new :class:`DataFrame` containing union of rows in this and another frame.
  
          This is different from both `UNION ALL` and `UNION DISTINCT` in SQL. To do a SQL-style set
          union (that does deduplication of elements), use this function followed by :func:`distinct`.
  
          The difference between this function and :func:`union` is that this function
          resolves columns by name (not by position):
  
          >>> df1 = spark.createDataFrame([[1, 2, 3]], ["col0", "col1", "col2"])
          >>> df2 = spark.createDataFrame([[4, 5, 6]], ["col1", "col2", "col0"])
          >>> df1.unionByName(df2).show()
          +----+----+----+
          |col0|col1|col2|
          +----+----+----+
          |   1|   2|   3|
          |   6|   4|   5|
          +----+----+----+