code: def listColumns(self, tableName, dbName=None):
          
          if dbName is None:
              dbName = self.currentDatabase()
          iter = self._jcatalog.listColumns(dbName, tableName).toLocalIterator()
          columns = []
          while iter.hasNext():
              jcolumn = iter.next()
              columns.append(Column(
                  name=jcolumn.name(),
                  description=jcolumn.description(),
                  dataType=jcolumn.dataType(),
                  nullable=jcolumn.nullable(),
                  isPartition=jcolumn.isPartition(),
                  isBucket=jcolumn.isBucket()))
          return columns
docs: Returns a list of columns for the given table/view in the specified database.
  
          If no database is specified, the current database is used.
  
          Note: the order of arguments here is different from that of its JVM counterpart
          because Python does not support method overloading.