apache / apache/arrow-java

Trying to use for Android but keep getting No DefaultAllocationManager found on classpath

Offen
#801 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Type: bug
Vorherrschende Sprache
Java
Sterne
94
Forks
152
Ø Merge
3 T. 16 Std.
Gemergte PRs (30 T.)
11

Beschreibung

### Describe the bug, including details regarding any error messages, version, and platform.

I have all the dependencies in place, code compiles just fine but when I run it and attempt to parse from an arrow stream like this (or using any of the parsers like from a file)

val df = DataFrame.readArrowFeather(channel.toInputStream(null))

I always get

Caused by: java.lang.RuntimeException: No DefaultAllocationManager found on classpath. Can't allocate Arrow buffers. Please consider adding arrow-memory-netty or arrow-memory-unsafe as a dependency.

Same for
val rootAllocator = RootAllocator()
val fileInputStream = FileInputStream(File(filepath))
val arrowReader = ArrowStreamReader(fileInputStream, rootAllocator)

Asking Gradle for my arrow dependencies I see

| +--- org.jetbrains.kotlinx:dataframe-arrow:1.0.0-dev-7570
| | +--- org.apache.arrow:arrow-vector:18.1.0
| | | +--- org.apache.arrow:arrow-format:18.1.0
| | | +--- org.apache.arrow:arrow-memory-core:18.1.0
| | +--- org.apache.arrow:arrow-format:18.1.0 (*)
| | +--- org.apache.arrow:arrow-memory-unsafe:18.1.0
| | | \--- org.apache.arrow:arrow-memory-core:18.1.0 (*)
+--- org.jetbrains.kotlinx:dataframe-arrow:1.0.0-dev-7570 (*)
+--- org.apache.arrow:arrow-memory-unsafe:18.1.0 (*)

This happens even if I don't use org.jetbrains.kotlinx.dataframe and just call the Apache Arrow parser directly as seen in second code example above.

I have tried adding both arrow-memory-unsage and arrow-memory-netty with the same result. I have been beating my head against a wall for the last few days. Is Android supported with this library? The data from the server comes to me in arrow-stream format so I need to be able to parse it to shows charts.

I have been able to parse the data just fine with Python and the web team is parsing it as well. I need to do this for Native Android and Native iOS.

### Component(s)

Integration

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, den Fehler mit DataFrame.readArrowFeather, RootAllocator und ArrowStreamReader unter Android zu reproduzieren, wobei die aufgeführten Abhängigkeiten arrow-vector, arrow-memory-core, arrow-memory-unsafe und arrow-memory-netty verwendet werden. Verfolge, warum DefaultAllocationManager zur Laufzeit nicht gefunden wird, und überprüfe, ob Android unterstützt wird. Als erledigt gilt die Aufgabe, wenn das Parsen von Arrow-Streams und -Dateien unter Android ohne den Allocation-Manager-Fehler funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, java, kotlin
Bereich
mobile-dev
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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