https://issues.apache.org/jira/browse/SPARK-17668

On Mon, Sep 26, 2016 at 3:40 PM, Koert Kuipers <ko...@tresata.com> wrote:

> ok will create jira
>
> On Mon, Sep 26, 2016 at 3:27 PM, Michael Armbrust <mich...@databricks.com>
> wrote:
>
>> I agree this should work.  We just haven't finished killing the old
>> reflection based conversion logic now that we have more powerful/efficient
>> encoders.  Please open a JIRA.
>>
>> On Sun, Sep 25, 2016 at 2:41 PM, Koert Kuipers <ko...@tresata.com> wrote:
>>
>>> after having gotten used to have case classes represent complex
>>> structures in Datasets, i am surprised to find out that when i work in
>>> DataFrames with udfs no such magic exists, and i have to fall back to
>>> manipulating Row objects, which is error prone and somewhat ugly.
>>>
>>> for example:
>>> case class Person(name: String, age: Int)
>>>
>>> val df = Seq((Person("john", 33), 5), (Person("mike", 30),
>>> 6)).toDF("person", "id")
>>> val df1 = df.withColumn("person", udf({ (p: Person) => p.copy(age =
>>> p.age + 1) }).apply(col("person")))
>>> df1.printSchema
>>> df1.show
>>>
>>> leads to:
>>> java.lang.ClassCastException: org.apache.spark.sql.catalyst.
>>> expressions.GenericRowWithSchema cannot be cast to Person
>>>
>>
>>
>

Reply via email to