[ 
https://issues.apache.org/jira/browse/SPARK-27388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Taoufik DACHRAOUI updated SPARK-27388:
--------------------------------------
    Description: 
Add an expression encoder for objects defined by properties (ie. I call them 
Beans). A property of an object is defined by a _setter_ and a _getter_ 
functions where the _getter_ return type is equal to the _setter_ unique 
parameter type and the _getter_ and _setter_ functions have the same name or 
the _getter_ name is prefixed by "get" and the _setter_ name is prefixed by 
"set"

 

An example of a Bean:
{code:java}
class Bar {
 ...   
  def age():Int = {...}

  def age(v:Int):Unit {...}
  ...
}

class Foo extends Bar { 
...  
   def setName(n:String) {...}
  def getName():String = {...}
...
}
{code}
```

 The class _Foo_ has 2 properties _age_ and _Name_

also added support for _java.util.List_, _java.util.Map_ and java _Enums_

 

Avro objects are beans and thus we can create an expression encoder with the 
current addition.

Currently complex avro unions are not supported; indeed a complex union is 
declared as Object and there cannot be an expression encoder for Object type 
(need to use a custom serializer like kryo for example)

 

  was:
Add an expression encoder for objects defined by properties (ie. I call them 
Beans). A property of an object is defined by a _setter_ and a _getter_ 
functions where the _getter_ return type is equal to the _setter_ unique 
parameter type and the _getter_ and _setter_ functions have the same name or 
the _getter_ name is prefixed by "get" and the _setter_ name is prefixed by 
"set"

 

An example of a Bean:
{code:java}
class Bar {
 ...   
  def age():Int = {...}

  def age(v:Int):Unit {...}
  ...
}

class Foo extends Bar { 
...  
   def setName(n:String) {...}
  def getName():String = {...}
...
}
{code}
```

 The class _Foo_ has 2 properties _age_ and _Name_

also added support for _java.util.List_, _java.util.Map_ and java _Enums_

 

Currently complex avro unions are not supported; indeed a complex union is 
declared as Object and there cannot be an expression encoder for Object type 
(need to use a custom serializer like kryo for example)

 


> expression encoder for avro like objects
> ----------------------------------------
>
>                 Key: SPARK-27388
>                 URL: https://issues.apache.org/jira/browse/SPARK-27388
>             Project: Spark
>          Issue Type: New Feature
>          Components: SQL
>    Affects Versions: 2.4.1
>            Reporter: Taoufik DACHRAOUI
>            Priority: Major
>
> Add an expression encoder for objects defined by properties (ie. I call them 
> Beans). A property of an object is defined by a _setter_ and a _getter_ 
> functions where the _getter_ return type is equal to the _setter_ unique 
> parameter type and the _getter_ and _setter_ functions have the same name or 
> the _getter_ name is prefixed by "get" and the _setter_ name is prefixed by 
> "set"
>  
> An example of a Bean:
> {code:java}
> class Bar {
>  ...   
>   def age():Int = {...}
>   def age(v:Int):Unit {...}
>   ...
> }
> class Foo extends Bar { 
> ...  
>    def setName(n:String) {...}
>   def getName():String = {...}
> ...
> }
> {code}
> ```
>  The class _Foo_ has 2 properties _age_ and _Name_
> also added support for _java.util.List_, _java.util.Map_ and java _Enums_
>  
> Avro objects are beans and thus we can create an expression encoder with the 
> current addition.
> Currently complex avro unions are not supported; indeed a complex union is 
> declared as Object and there cannot be an expression encoder for Object type 
> (need to use a custom serializer like kryo for example)
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to