..  Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

..    http://www.apache.org/licenses/LICENSE-2.0

..  Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.


IntegerType
=============================

.. currentmodule:: pyspark.sql.types

.. autoclass:: IntegerType

    
      
    

    
    

    .. rubric:: Methods

    .. autosummary::
    
       ~IntegerType.fromInternal
       ~IntegerType.json
       ~IntegerType.jsonValue
       ~IntegerType.needConversion
       ~IntegerType.simpleString
       ~IntegerType.toInternal
       ~IntegerType.typeName

    
    

    
    
    

    
    

    .. rubric:: Methods Documentation

    
    .. automethod:: fromInternal
    .. automethod:: json
    .. automethod:: jsonValue
    .. automethod:: needConversion
    .. automethod:: simpleString
    .. automethod:: toInternal
    .. automethod:: typeName

    
    

    
    
    
