You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Nikolay Petrov (Jira)" <ji...@apache.org> on 2020/03/02 19:31:00 UTC

[jira] [Created] (ARROW-7986) pa.Array.from_pandas cannot convert pandas.Series containing pyspark.ml.linalg.SparseVector

Nikolay Petrov created ARROW-7986:
-------------------------------------

             Summary: pa.Array.from_pandas cannot convert pandas.Series containing pyspark.ml.linalg.SparseVector
                 Key: ARROW-7986
                 URL: https://issues.apache.org/jira/browse/ARROW-7986
             Project: Apache Arrow
          Issue Type: Bug
          Components: C
    Affects Versions: 0.16.0, 0.14.1
         Environment: macOS 10.15.3;
setup following the contribution guidelines for koalas: https://koalas.readthedocs.io/en/latest/development/contributing.html
            Reporter: Nikolay Petrov


The code 
{code:java}
import pandas as pd
from pyspark.ml.linalg import SparseVector
import pyarrow as pa

sparse_values = {0: 0.1, 1: 1.1}
sparse_vector = SparseVector(len(sparse_values), sparse_values)
pds = pd.Series(sparse_vector)
pa.array(pds){code}
results in: 
{noformat}
pyarrow/array.pxi:191: in pyarrow.lib.array
 ???
pyarrow/array.pxi:78: in pyarrow.lib._ndarray_to_array
 ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E pyarrow.lib.ArrowInvalid: Could not convert (2,[0,1],[0.1,1.1]) with type SparseVector: did not recognize Python value type when inferring an Arrow data type
pyarrow/error.pxi:85: ArrowInvalid
{noformat}
 

 

My initial intention was to test if databricks.koala's functionality is implemented, which took me to error coming from pyarrow:
{code:java}
import pandas as pd
import databricks.koalas as ks
from pyspark.ml.linalg import SparseVector
sparse_values = {0: 0.1, 1: 1.1}
sparse_vector = SparseVector(len(sparse_values), sparse_values)
pds = pd.Series(sparse_vector)
kss = ks.Series(sparse_vector)

{code}
while pd.Series on the SparseVector works fine, the last line errors as: 
{noformat}
databricks/koalas/typedef.py:176: in infer_pd_series_spark_type
 return from_arrow_type(pa.Array.from_pandas(s).type)
pyarrow/array.pxi:593: in pyarrow.lib.Array.from_pandas
 ???
pyarrow/array.pxi:191: in pyarrow.lib.array
 ???
pyarrow/array.pxi:78: in pyarrow.lib._ndarray_to_array
 ???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E pyarrow.lib.ArrowInvalid: Could not convert (2,[0,1],[0.1,1.1]) with type SparseVector: did not recognize Python value type when inferring an Arrow data type
pyarrow/error.pxi:85: ArrowInvalid
{noformat}
 

 



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