GitHub user ceedubs opened a pull request:

    https://github.com/apache/spark/pull/20869

    Improve implicitNotFound message for Encoder

    The `implicitNotFound` message for `Encoder` doesn't mention the name of
    the type for which it can't find an encoder. Furthermore, it covers up
    the fact that `Encoder` is the name of the relevant type class.
    Hopefully this new message provides a little more specific type detail
    while still giving the general message about which types are supported.
    
    ## What changes were proposed in this pull request?
    
    Augment the existing message to mention that it's looking for an `Encoder` 
and what the type of the encoder is.
    
    For example instead of:
    
    ```
    Unable to find encoder for type stored in a Dataset.  Primitive types (Int, 
String, etc) and Product types (case classes) are supported by importing 
spark.implicits._  Support for serializing other types will be added in future 
releases.
    ```
    
    return this message:
    
    ```
    Unable to find encoder for type Exception. An implicit Encoder[Exception] 
is needed to store Exception instances in a Dataset. Primitive types (Int, 
String, etc) and Product types (ca
    se classes) are supported by importing spark.implicits._  Support for 
serializing other types will be added in future releases.
    ```
    
    ## How was this patch tested?
    
    It was tested manually in the Scala REPL, since triggering this in a test 
would cause a compilation error.
    
    ```
    scala> implicitly[Encoder[Exception]]                                       
                                                                                
      
    <console>:51: error: Unable to find encoder for type Exception. An implicit 
Encoder[Exception] is needed to store Exception instances in a Dataset. 
Primitive types (Int, String, etc) and Product types (ca
    se classes) are supported by importing spark.implicits._  Support for 
serializing other types will be added in future releases.  
           implicitly[Encoder[Exception]]                                       
                                                           
                     ^
    ```


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ceedubs/spark encoder-implicit-msg

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/20869.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #20869
    
----
commit 588dffc51df53bcbb885305e8ecd5bf39aa2e465
Author: Cody Allen <ceedubs@...>
Date:   2018-03-21T01:05:02Z

    Improve implicitNotFound message for Encoder
    
    The `implicitNotFound` message for `Encoder` doesn't mention the name of
    the type for which it can't find an encoder. Furthermore, it covers up
    the fact that `Encoder` is the name of the relevant type class.
    Hopefully this new message provides a little more specific type detail
    while still giving the general message about which types are supported.

----


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to