apache / apache/parquet-java

parquet-cli with hadoop throws java.lang.RuntimeException on any parquet file access

Offen
#2,681 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Component: CLI Component: Parquet Priority: Blocker Type: bug
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
33

Beschreibung

I can't do even basic things with parquet-cli from 1.13.0-SNAPSHOT.
```

git clone  
cd parquet-mr
mvn clean install -DskipTests
cd parquet-cli
mvn clean install -DskipTests
cd target
hadoop jar parquet-cli-1.13.0-SNAPSHOT-runtime.jar org.apache.parquet.cli.Main cat
```
Results:
```

Unknown error
java.lang.RuntimeException: Failed on record 0
    at org.apache.parquet.cli.commands.CatCommand.run(CatCommand.java:86)
    at org.apache.parquet.cli.Main.run(Main.java:157)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.parquet.cli.Main.main(Main.java:187)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
Caused by: org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file file:/home/theosib/guid.parquet
    at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:264)
    at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:132)
    at org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:136)
    at org.apache.parquet.cli.BaseCommand$1$1.advance(BaseCommand.java:363)
    at org.apache.parquet.cli.BaseCommand$1$1.(BaseCommand.java:344)
    at org.apache.parquet.cli.BaseCommand$1.iterator(BaseCommand.java:342)
    at org.apache.parquet.cli.commands.CatCommand.run(CatCommand.java:73)
    ... 9 more
Caused by: org.apache.parquet.io.ParquetDecodingException: The requested schema is not compatible with the file schema. incompatible types: required binary Number (STRING) != required fixed_len_byte_array(16) Number (UUID)
    at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.incompatibleSchema(ColumnIOFactory.java:101)
    at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visit(ColumnIOFactory.java:93)
    at org.apache.parquet.schema.PrimitiveType.accept(PrimitiveType.java:602)
    at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visitChildren(ColumnIOFactory.java:83)
    at org.apache.parquet.io.ColumnIOFactory$ColumnIOCreatorVisitor.visit(ColumnIOFactory.java:57)
    at org.apache.parquet.schema.MessageType.accept(MessageType.java:55)
    at org.apache.parquet.io.ColumnIOFactory.getColumnIO(ColumnIOFactory.java:162)
    at org.apache.parquet.hadoop.InternalParquetRecordReader.checkRead(InternalParquetRecordReader.java:140)
    at org.apache.parquet.hadoop.InternalParquetRecordReader.nextKeyValue(InternalParquetRecordReader.java:230)
    ... 15 more
```

**Environment**: Amazon Linux 2, Java 8, Hadoop 3.2.3
**Reporter**: [Timothy Miller](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=theosib-amazon) / @theosib-amazon

**Note**: *This issue was originally created as [PARQUET-2143](https://issues.apache.org/jira/browse/PARQUET-2143). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Reproduziere den hadoop-Aufruf mit der gemeldeten Parquet-Datei und beginne dann mit parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java sowie dem Lesepfad in InternalParquetRecordReader. Verfolge den Schema-Konflikt durch ColumnIOFactory und ermittle die vorgesehene Behandlung für das gemeldete UUID-Feld. Als abgeschlossen gilt die Aufgabe, wenn der gemeldete parquet-cli-Zugriff nicht mehr mit RuntimeException fehlschlägt und eine Regressionstestabdeckung für dieses Verhalten vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
hadoop, java
Bereich
cli, data-engineering
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.