[ 
https://issues.apache.org/jira/browse/ARROW-10901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17279363#comment-17279363
 ] 

Paul Taylor commented on ARROW-10901:
-------------------------------------

toArray() on the Numeric vector types returns a zero-copy TypedArray view over 
the underlying `data` buffer for vectors/single-chunk columns. For multi-chunk 
columns it copies the data from each chunk into a single contiguous buffer.

toArray() is a method to deserialize values from their binary Arrow 
representation to JS values. For example, Utf8Vector will return an Array of 
strings, DateVector will return an Array of Dates, etc.

If you want the numeric values of an IntVector, you can use the `.values` 
getter directly. This returns the underlying Vector's binary data as a JS typed 
array of the appropriate byte-width, excepting the 64-bit cases.

Not every environment implements the `BigInt64Array` and `BigUint64Array`. 
Since we want to support those environments, we've opted to return the 32-bit 
variants of the 64-bit Vector types.

If you're targeting only environments with BigInts, the `Int64Vector` and 
`Uint64Vector` have additional `.values64` getters that return `BigInt64Array` 
or `BigUint64Array` respectively. These getters will throw an error if called 
in an environment without BigInts.

> [JS] toArray delivers double length arrays in some cases
> --------------------------------------------------------
>
>                 Key: ARROW-10901
>                 URL: https://issues.apache.org/jira/browse/ARROW-10901
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: JavaScript
>    Affects Versions: 2.0.0
>            Reporter: roland
>            Priority: Major
>         Attachments: Screen Shot 2020-12-14 at 3.34.24 PM.png, Screen Shot 
> 2020-12-14 at 3.38.54 PM.png
>
>
> When calling `toArray` on a column, one would expect that a column of length 
> 10, would give back an array of length 10. Instead, it sometimes gives back 
> an array of length 20.
> I think this is the case for elements where the type is something like Int64, 
> where it's not guaranteed JS will actually fit the number into it Float 
> (which iirc is not 64 bit exactly). 
> At the same time, if I call `toArray`, I would expect the numbers to stay the 
> same.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to