Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Bechir Ben Daadouch
Hi, Adam, thank you :) Aldrin: First, I tried to implement the basic data structures needed for graph algorithms, namely a queue and a heapq (for breadth first search and dijkstra (weighted shortest path)). That's when I had some problems since Apache Arrow objects are immutable. This is how I

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Bechir Ben Daadouch
Hi, @Adam, thank you :) @Aldrin: First, I tried to implement the basic data structures needed for graph algorithms, namely a queue and a heapq (for breadth first search and dijkstra (weighted shortest path)). That's when I had some problems since Apache Arrow objects are immutable. This is how

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Gavin Ray
This isn't particularly efficient, but could you do something like this? https://replit.com/@GavinRay97/EnlightenedRichAdministration#main.py On Fri, Jun 30, 2023 at 1:10 PM Aldrin wrote: > > But I found out very quickly that I won't be able to... using only > Apache Arrow without resorting to

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Aldrin
> But I found out very quickly that I won't be able to... using only Apache > Arrow without resorting to other libraries. > I am aiming to assess the viability of Apache Arrow for graph algorithms and > data structures... > I also gave a shot at doing it similar to a certain SQL method... I'm

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Adam Lippai
Hi Bechir, GraphBlas is mainly an interface, a list of functions. This is similar to how BLAS is implemented by OpenBlas and MKL. Gabor Szárnyas has a great collection on how they are implanted and how they perform: https://github.com/GraphBLAS/GraphBLAS-Pointers Best regards, Adam Lippai On

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Bechir Ben Daadouch
Hey Adam, Thank you very much for taking the time to respond and for the suggestions :) I am aiming to assess the viability of Apache Arrow for graph algorithms and data structures, rather than addressing a particular issue. I am interested to determine the extent to which I can utilize Apache

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Adam Lippai
Hi, I’d recommend integrating with GraphBlas/suitesparse which are sparse matrix multiplication based algorithms for common graph problems. There might be an overlap in the data structures used, eg creating and a new arrow type like the recent tensor type addition, or simply creating zero copy or

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-30 Thread Bechir Ben Daadouch
Thank you for taking the time to answer :) I don't have a fix Use-Case, but I am trying yo build a POC and evaluate whether Apache Arrow could be adequate in the context of graphs. But I found out very quickly that I won't be able to do all the necessary algorithm steps using only Apache Arrow

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-29 Thread Benson Muite
On 6/30/23 04:21, Bechir Ben Daadouch wrote: > Dear Apache Arrow Dev Community, > > My name is Bechir, I am currently working on a project that involves > implementing graph algorithms in Apache Arrow. > > The initial plan was to construct a node structure and a subsequent graph > that would

Re: Apache Arrow | Graph Algorithms & Data Structures

2023-06-29 Thread Weston Pace
Is your use case to operate on a batch of graphs? For example, do you have hundreds or thousands of graphs that you need to run these algorithms on at once? Or is your use case to operate on a single large graph? If it's the single-graph case then how many nodes do you have? If it's one graph

Apache Arrow | Graph Algorithms & Data Structures

2023-06-29 Thread Bechir Ben Daadouch
Dear Apache Arrow Dev Community, My name is Bechir, I am currently working on a project that involves implementing graph algorithms in Apache Arrow. The initial plan was to construct a node structure and a subsequent graph that would encompass all the nodes. However, I quickly realized that due