Coder Social home page Coder Social logo

zhztheplayer / arrow-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/arrow

3.0 3.0 0.0 146.03 MB

Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, Java, JavaScript, Python, and Ruby.

Home Page: https://arrow.apache.org

License: Apache License 2.0

Makefile 0.06% C++ 51.74% C 3.20% Shell 0.91% Ruby 3.69% Batchfile 0.09% CMake 1.78% Python 10.51% Perl 0.01% Java 15.82% FreeMarker 0.01% JavaScript 0.34% HTML 0.01% TypeScript 3.64% Lua 0.03% Go 4.21% Awk 0.01% Meson 0.15% Assembly 3.46% Dockerfile 0.32%

arrow-1's People

Contributors

alamb avatar andygrove avatar bkietz avatar bryancutler avatar cpcloud avatar cyb70289 avatar dandandan avatar emkornfield avatar fsaintjacques avatar jorgecarleitao avatar jorisvandenbossche avatar julienledem avatar kiszk avatar kou avatar kszucs avatar lidavidm avatar liyafan82 avatar mrkn avatar nealrichardson avatar nevi-me avatar pcmoritz avatar pitrou avatar praveenbingo avatar romainfrancois avatar sbinet avatar shiro615 avatar tianchen92 avatar trxcllnt avatar wesm avatar xhochy avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

arrow-1's Issues

[ARROW-7808] Shared libraries inside jar files

Hi there @zhztheplayer,

I am currently using your nice Arrow Dataset Java implementation to be able to use Datasets from Java. I can use it without problems on my own system, where I have sudo rights, have up-to-date gcc, cmake, etcetera.

However, I cannot run my jarfile, containing all dependencies, on a remote machine.
Here is the error I get on a remote machine:

Exception in thread "Thread-49" java.lang.NoClassDefFoundError: Could not initialize class org.apache.arrow.dataset.file.JniWrapper
	at org.apache.arrow.dataset.file.FileSystemDatasetFactory.createNative(FileSystemDatasetFactory.java:33)
	at org.apache.arrow.dataset.file.FileSystemDatasetFactory.<init>(FileSystemDatasetFactory.java:29)
	at arrow.dataset.DefaultDatasetFactory.lambda$create$0(DefaultDatasetFactory.java:49)
	at arrow.JNIMemory.withAllocatorDo(JNIMemory.scala:54)
	at arrow.dataset.DefaultDatasetFactory.create(DefaultDatasetFactory.java:48)
	at arrow.dataset.MetaDataset.dataset$lzycompute(MetaDataset.scala:34)
	at arrow.dataset.MetaDataset.dataset(MetaDataset.scala:34)

I want to stress again that the very same jar file works without problems on my local machine.

I suppose the error makes sense: I access the JniWrapper here for the very first time, so this is the first time the '.so' shared libraries are called right?

My local system has a lot more recent libraries than the server I ran on while getting this error.
My guess: Different environments cause the .so file to fail loading propely, meaning I can use my code only on the same system I compiled this JNI bridge on.

I noticed there was a way to compile static libraries ('.a' files) in Arrow. That might solve the problem. With '.a' files, relevant system library routines are inserted into the '.a' file,
so my server environment does not matter much then (I think).

Questions

Here is what I would like to know:

  1. Do you think using static libraries will solve my problem?
  2. Does your JNI bridge currently support static libraries?
  3. Do you plan to add static libraries to your JNI bridge in the future?

If static libraries prove to increase independence from system libraries, I really think you should use those instead of shared libraries. Even though the library size will increase, static libs would add a piece of compatibility between systems, and Java and JARs are all about compatibility between systems.

P.S.
JNI can use static libraries since Java 8. Source: StackOverflow

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.