first use current thread's classloader to load a class, if current thread does not have a classloader, use the class's current classloader to load a class.
This will make sure a class not packaged in parquet but on classpath loaded properly. Otherwise, for example, if you set your own ReadSupport class to the
Configuration object and expect it to be loaded by ParquetInputFormat, it will fail and throw ClassNotFoundException.