Thank you, William and Howard!

-- Philip

On Wed, Jun 8, 2022 at 10:29 AM William Ayd <[email protected]> wrote:

> Something like this may help:
>
> const fs = require("fs");
> const arrow = require("apache-arrow");
>
> const path = "data.arrow";
> const tbl = arrow.tableFromArrays({data: new Int32Array([1, 2, 3])});
> const data = arrow.tableToIPC(tbl, path);
> fs.writeFileSync(path, data, "binary”);
>
> The documentation has an example on how to read from IPC if you are
> interested in roundtripping
>
>
> https://arrow.apache.org/docs/js/#get-a-table-from-an-arrow-file-on-disk-in-ipc-format
>
>
>
> On Jun 8, 2022, at 10:08 AM, Howard Engelhart <[email protected]>
> wrote:
>
> Hi Philip,
>
> The way I did this was through the table...
>
> export function encodeTable(table:Table):DataBlock {
>   let schema, records;
>   let w = new RecordBatchStreamWriter();
>   w.reset(undefined, table.schema);
>   schema = Buffer.from(w.toUint8Array(true)).toString('base64');
>   w = new RecordBatchStreamWriter();
>   w.write(table);
>   records =
> Buffer.from(w.toUint8Array(true)).toString('base64').replace(schema,'');
>   return {
>     aId: uuidv4(),
>     schema,
>     records
>   };
> }
>
> Note, the DataBlock being returned here and separation of the records and
> the schema was specific to my application which was working with AWS
> Athena.  You may not need this for your own.  Also, if you're looking at
> writing to a file, take a look at replacing my use of
> RecordBatchStreamWriter with RecordBatchFileWriter.
>
> As far as creating the Table goes, there are a few different arrow helper
> functions for that.
>
> -H
>
>
>
> On Wed, Jun 8, 2022 at 12:30 PM Philip Zeyliger <
> [email protected]> wrote:
>
>> Hi!
>>
>> I'm trying to write an Arrow file from JS, and having trouble finding
>> examples of writing (not reading) in the documentation/cookbooks. Pointers
>> to examples would be appreciated!
>>
>> Thanks!
>>
>> -- Philip
>>
>
>

Reply via email to