You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Maciej Szymkiewicz (JIRA)" <ji...@apache.org> on 2015/10/23 14:55:27 UTC

[jira] [Created] (SPARK-11281) Issue with creating and collecting DataFrame using environments

Maciej Szymkiewicz created SPARK-11281:
------------------------------------------

             Summary: Issue with creating and collecting DataFrame using environments 
                 Key: SPARK-11281
                 URL: https://issues.apache.org/jira/browse/SPARK-11281
             Project: Spark
          Issue Type: Bug
          Components: SparkR
    Affects Versions: 1.6.0
         Environment: R 3.2.2, Spark build from master  487d409e71767c76399217a07af8de1bb0da7aa8
            Reporter: Maciej Szymkiewicz


It is not possible to to access Map field created from an environment. Assuming local data frame is created as follows:

{code}
ldf <- data.frame(row.names=1:2)
ldf$x <- c(as.environment(list(a=1, b=2)), as.environment(list(c=3)))
str(ldf)
## 'data.frame':	2 obs. of  1 variable:
##  $ x:List of 2
##   ..$ :<environment: 0x35c94d8> 
##   ..$ :<environment: 0x35c7ac0> 

get("a", ldf$x[[1]])
## [1] 1

get("c", ldf$x[[2]])
## [1] 3
{code}

It is possible to create a Spark data frame:

{code}
sdf <- createDataFrame(sqlContext, ldf)
printSchema(sdf)

## root
##  |-- x: array (nullable = true)
##  |    |-- element: map (containsNull = true)
##  |    |    |-- key: string
##  |    |    |-- value: double (valueContainsNull = true)
{code}

but it throws:

{code}
java.lang.IllegalArgumentException: Invalid array type e
{code}

on collect / head. 

Problem seems to be specific to environments and cannot be reproduced when Map comes for example from Cassandra table.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org