apache / apache/parquet-java

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

Aperta
#2,681 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Component: CLI Component: Parquet Priority: Blocker Type: bug
Lingua principale
Java
Stelle
3.1k
Fork
1.6k
Merge medio
3g 12h
PR unite (30g)
33

Descrizione

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.*

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Riproduci l’invocazione hadoop con il file Parquet segnalato, quindi inizia da parquet-cli/src/main/java/org/apache/parquet/cli/commands/CatCommand.java e dal percorso di lettura in InternalParquetRecordReader. Segui la mancata corrispondenza dello schema attraverso ColumnIOFactory e determina la gestione prevista per il campo UUID segnalato. Il lavoro è completato quando l’accesso parquet-cli segnalato non fallisce più con RuntimeException e questo comportamento ha una copertura di regressione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
hadoop, java
Ambito
cli, data-engineering
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.