diff --git a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/CodecFactory.java b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/CodecFactory.java
index <HASH>..<HASH> 100644
--- a/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/CodecFactory.java
+++ b/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/CodecFactory.java
@@ -227,7 +227,13 @@ public class CodecFactory implements CompressionCodecFactory {
     }
 
     try {
-      Class<?> codecClass = Class.forName(codecClassName);
+      Class<?> codecClass;
+      try {
+        codecClass = Class.forName(codecClassName);
+      } catch (ClassNotFoundException e) {
+        // Try to load the class using the job classloader
+        codecClass = configuration.getClassLoader().loadClass(codecClassName);
+      }
       codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass, configuration);
       CODEC_BY_NAME.put(codecClassName, codec);
       return codec;
PARQUET-<I>: Use job ClassLoader to load CompressionCodec class (#<I>)

The MR job might be having a different ClassLoader then

the defining ClassLoader of the CodecFactory class.

A CompressionCodec class that is not loadable via the

CodecFactory ClassLoader might be loadable through the

job ClassLoader.