code: def _get_numpy_record_dtype(self, rec):
          
          import numpy as np
          cur_dtypes = rec.dtype
          col_names = cur_dtypes.names
          record_type_list = []
          has_rec_fix = False
          for i in xrange(len(cur_dtypes)):
              curr_type = cur_dtypes[i]
              # If type is a datetime64 timestamp, convert to microseconds
              # NOTE: if dtype is datetime[ns] then np.record.tolist() will output values as longs,
              # conversion from [us] or lower will lead to py datetime objects, see SPARK-22417
              if curr_type == np.dtype('datetime64[ns]'):
                  curr_type = 'datetime64[us]'
                  has_rec_fix = True
              record_type_list.append((str(col_names[i]), curr_type))
          return np.dtype(record_type_list) if has_rec_fix else None
docs: Used when converting a pandas.DataFrame to Spark using to_records(), this will correct
          the dtypes of fields in a record so they can be properly loaded into Spark.
          :param rec: a numpy record to check field dtypes
          :return corrected dtype for a numpy.record or None if no correction needed