apache / apache/parquet-java

Cannot read schema from parquet file

オープン
#2,690 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
Component: Avro Component: Parquet Priority: Major Type: bug
主要言語
Java
スター
3.1k
フォーク
1.6k
平均マージ
3日 12時間
マージ済み PR(30日)
33

説明

I'm trying to generate a Avro schema from a parquet file. I get the issue both when using in Intellij as well as when I'm using my own implementation of generating a schema.

The parquet file contains nested entries and arrays: \{"a": a, "b": [{"c": c}]}

I get the following error message:
```java

org.apache.avro.SchemaParseException: Can't redefine: element
    at org.apache.avro.Schema$Names.put(Schema.java:1547)
    at org.apache.avro.Schema$NamedSchema.writeNameRef(Schema.java:810)
    at org.apache.avro.Schema$RecordSchema.toJson(Schema.java:972)
    at org.apache.avro.Schema$UnionSchema.toJson(Schema.java:1239)
    at org.apache.avro.Schema$RecordSchema.fieldsToJson(Schema.java:1000)
    at org.apache.avro.Schema$RecordSchema.toJson(Schema.java:984)
    at org.apache.avro.Schema$ArraySchema.toJson(Schema.java:1134)
    at org.apache.avro.Schema$UnionSchema.toJson(Schema.java:1239)
    at org.apache.avro.Schema$RecordSchema.fieldsToJson(Schema.java:1000)
    at org.apache.avro.Schema$RecordSchema.toJson(Schema.java:984)
    at org.apache.avro.Schema$UnionSchema.toJson(Schema.java:1239)
    at org.apache.avro.Schema$RecordSchema.fieldsToJson(Schema.java:1000)
    at org.apache.avro.Schema$RecordSchema.toJson(Schema.java:984)
    at org.apache.avro.Schema.toString(Schema.java:424)
    at org.apache.avro.Schema.toString(Schema.java:396)
    at uk.co.hadoopathome.intellij.viewer.fileformat.ParquetFileReader.getSchema(ParquetFileReader.java:65)
    at uk.co.hadoopathome.intellij.viewer.FileViewerToolWindow$2.doInBackground(FileViewerToolWindow.java:196)
    at uk.co.hadoopathome.intellij.viewer.FileViewerToolWindow$2.doInBackground(FileViewerToolWindow.java:184)
    at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
```

It appears to be an issue similar to [PARQUET-1441](https://issues.apache.org/jira/browse/PARQUET-1441) or [PARQUET-1409](https://issues.apache.org/jira/browse/PARQUET-1409).

Or could it possibly be something wrong in my parquet file?

**Reporter**: [Nils Broman](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=nils.scila)

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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

スタックトレースの65行目で特定されている uk.co.hadoopathome.intellij.viewer.fileformat.ParquetFileReader.getSchema から始め、ネストされたエントリと配列を含む Parquet ファイルで失敗を再現します。PARQUET-1441 および PARQUET-1409 と動作を比較します。完了とは、入力ファイルが原因なのか、parquet-java のスキーマ変換が Avro SchemaParseException の原因なのかを明らかにすることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
data
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。