You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zeppelin.apache.org by "Ruggero Rossi (JIRA)" <ji...@apache.org> on 2016/02/05 09:42:39 UTC

[jira] [Created] (ZEPPELIN-658) Scala: not accepting companion objects if defined in different lines

Ruggero Rossi created ZEPPELIN-658:
--------------------------------------

             Summary: Scala: not accepting companion objects if defined in different lines
                 Key: ZEPPELIN-658
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-658
             Project: Zeppelin
          Issue Type: Improvement
    Affects Versions: 0.5.6
         Environment: Linux Centos 7, Spark 1.6, Scala 2.10.6
            Reporter: Ruggero Rossi



In Scala 2.10.x, a companion object must be in the same source file as the related class, otherwise Scala will not accept it as a proper companion.
Now, it appears to me that Zeppelin sends every single line in a paragraph as a separate line to the Scala REPL.
Doing so, it makes impossible for the companion object to be accepted.
I will make an example:. If I write in a Zeppelin paragraph:
 
// the case class
case class Person (var name: String, var age: Int)
 
// the companion object
object Person {
  def apply() = new Person("<no name>", 0)
  def apply(name: String) = new Person(name, 0)
}
 
I receive the following error:
warning: previously defined class Person is not a companion to object Person. Companions must be defined together; you may wish to use :paste mode for this.
 
Now, if instead I paste everything on the same line, it works well:
 
case class Person (var name: String, var age: Int); object Person {  def apply() = new Person("<no name>", 0);   def apply(name: String) = new Person(name, 0); }
 
So it looks like this issue could be solved either by writing a text processor that parses each line and paste them into a single line using semicolons in the right places, or Zeppelin could just send the command “:paste” to the Scala REPL (or have a setting that permits so).




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

Re: [jira] [Created] (ZEPPELIN-658) Scala: not accepting companion objects if defined in different lines

Posted by Trevor Grant <tr...@gmail.com>.
That was the problem. Zeppelin-daemon.sh stop was not in fact stopping
things. I aggressively killed Zeppelin and it all worked. I have a pull
request out for updating the flink interpreter. Thanks!
Tg
On Mar 23, 2016 3:58 PM, "Felix Cheung" <fe...@hotmail.com> wrote:

> It works for me when I copy/paste the code into the notebook. Could you
> check you are running the build with the code fix?
>
>
>
>
>
>
> On Wed, Mar 23, 2016 at 9:42 AM -0700, "Trevor Grant" <
> trevor.d.grant@gmail.com> wrote:
>
>
>
>
>
> Hey all.
>
> I just did a pull build to utilize this bug fix, but I'm still getting the
> error when creating companions
>
> My code:
>
> %spark
>
>
> case class Person (var name: String, var age: Int)
> // the companion object
> object Person{
>     def apply() = new Person("<no name>", 0)
>     def apply(name: String) = new Person(name, 0)
> }
>
> My result:
> defined class Person
> defined module Person
> warning: previously defined class Person is not a companion to object
> Person.
> Companions must be defined together; you may wish to use :paste mode for
> this.
> FINISHED
>
> Thoughts? E.g. what am I doing wrong here?
>
>
> Also I *really* want this for Flink, so I coppied and pasted the update,
> which compiles- but doesn't work as expected, however it doesn't work as
> expected on Spark either- which makes me think this is a case of user
> error. I can create a PR to update the Flink 'terp once I get expected
> results.
>
> tg
>
>
>
> Trevor Grant
> Data Scientist
> https://github.com/rawkintrevo
> http://stackexchange.com/users/3002022/rawkintrevo
> http://trevorgrant.org
>
> *"Fortunate is he, who is able to know the causes of things."  -Virgil*
>
>
> On Fri, Feb 5, 2016 at 2:42 AM, Ruggero Rossi (JIRA) <ji...@apache.org>
> wrote:
>
> > Ruggero Rossi created ZEPPELIN-658:
> > --------------------------------------
> >
> >              Summary: Scala: not accepting companion objects if defined
> in
> > different lines
> >                  Key: ZEPPELIN-658
> >                  URL: https://issues.apache.org/jira/browse/ZEPPELIN-658
> >              Project: Zeppelin
> >           Issue Type: Improvement
> >     Affects Versions: 0.5.6
> >          Environment: Linux Centos 7, Spark 1.6, Scala 2.10.6
> >             Reporter: Ruggero Rossi
> >
> >
> >
> > In Scala 2.10.x, a companion object must be in the same source file as
> the
> > related class, otherwise Scala will not accept it as a proper companion.
> > Now, it appears to me that Zeppelin sends every single line in a
> paragraph
> > as a separate line to the Scala REPL.
> > Doing so, it makes impossible for the companion object to be accepted.
> > I will make an example:. If I write in a Zeppelin paragraph:
> >
> > // the case class
> > case class Person (var name: String, var age: Int)
> >
> > // the companion object
> > object Person {
> >   def apply() = new Person("<no name>", 0)
> >   def apply(name: String) = new Person(name, 0)
> > }
> >
> > I receive the following error:
> > warning: previously defined class Person is not a companion to object
> > Person. Companions must be defined together; you may wish to use :paste
> > mode for this.
> >
> > Now, if instead I paste everything on the same line, it works well:
> >
> > case class Person (var name: String, var age: Int); object Person {  def
> > apply() = new Person("<no name>", 0);   def apply(name: String) = new
> > Person(name, 0); }
> >
> > So it looks like this issue could be solved either by writing a text
> > processor that parses each line and paste them into a single line using
> > semicolons in the right places, or Zeppelin could just send the command
> > “:paste” to the Scala REPL (or have a setting that permits so).
> >
> >
> >
> >
> > --
> > This message was sent by Atlassian JIRA
> > (v6.3.4#6332)
> >
>

Re: [jira] [Created] (ZEPPELIN-658) Scala: not accepting companion objects if defined in different lines

Posted by Felix Cheung <fe...@hotmail.com>.
It works for me when I copy/paste the code into the notebook. Could you check you are running the build with the code fix?






On Wed, Mar 23, 2016 at 9:42 AM -0700, "Trevor Grant" <tr...@gmail.com> wrote:





Hey all.

I just did a pull build to utilize this bug fix, but I'm still getting the
error when creating companions

My code:

%spark


case class Person (var name: String, var age: Int)
// the companion object
object Person{
    def apply() = new Person("<no name>", 0)
    def apply(name: String) = new Person(name, 0)
}

My result:
defined class Person
defined module Person
warning: previously defined class Person is not a companion to object
Person.
Companions must be defined together; you may wish to use :paste mode for
this.
FINISHED

Thoughts? E.g. what am I doing wrong here?


Also I *really* want this for Flink, so I coppied and pasted the update,
which compiles- but doesn't work as expected, however it doesn't work as
expected on Spark either- which makes me think this is a case of user
error. I can create a PR to update the Flink 'terp once I get expected
results.

tg



Trevor Grant
Data Scientist
https://github.com/rawkintrevo
http://stackexchange.com/users/3002022/rawkintrevo
http://trevorgrant.org

*"Fortunate is he, who is able to know the causes of things."  -Virgil*


On Fri, Feb 5, 2016 at 2:42 AM, Ruggero Rossi (JIRA) <ji...@apache.org>
wrote:

> Ruggero Rossi created ZEPPELIN-658:
> --------------------------------------
>
>              Summary: Scala: not accepting companion objects if defined in
> different lines
>                  Key: ZEPPELIN-658
>                  URL: https://issues.apache.org/jira/browse/ZEPPELIN-658
>              Project: Zeppelin
>           Issue Type: Improvement
>     Affects Versions: 0.5.6
>          Environment: Linux Centos 7, Spark 1.6, Scala 2.10.6
>             Reporter: Ruggero Rossi
>
>
>
> In Scala 2.10.x, a companion object must be in the same source file as the
> related class, otherwise Scala will not accept it as a proper companion.
> Now, it appears to me that Zeppelin sends every single line in a paragraph
> as a separate line to the Scala REPL.
> Doing so, it makes impossible for the companion object to be accepted.
> I will make an example:. If I write in a Zeppelin paragraph:
>
> // the case class
> case class Person (var name: String, var age: Int)
>
> // the companion object
> object Person {
>   def apply() = new Person("<no name>", 0)
>   def apply(name: String) = new Person(name, 0)
> }
>
> I receive the following error:
> warning: previously defined class Person is not a companion to object
> Person. Companions must be defined together; you may wish to use :paste
> mode for this.
>
> Now, if instead I paste everything on the same line, it works well:
>
> case class Person (var name: String, var age: Int); object Person {  def
> apply() = new Person("<no name>", 0);   def apply(name: String) = new
> Person(name, 0); }
>
> So it looks like this issue could be solved either by writing a text
> processor that parses each line and paste them into a single line using
> semicolons in the right places, or Zeppelin could just send the command
> “:paste” to the Scala REPL (or have a setting that permits so).
>
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)
>

Re: [jira] [Created] (ZEPPELIN-658) Scala: not accepting companion objects if defined in different lines

Posted by Trevor Grant <tr...@gmail.com>.
Hey all.

I just did a pull build to utilize this bug fix, but I'm still getting the
error when creating companions

My code:

%spark


case class Person (var name: String, var age: Int)
// the companion object
object Person{
    def apply() = new Person("<no name>", 0)
    def apply(name: String) = new Person(name, 0)
}

My result:
defined class Person
defined module Person
warning: previously defined class Person is not a companion to object
Person.
Companions must be defined together; you may wish to use :paste mode for
this.
FINISHED

Thoughts? E.g. what am I doing wrong here?


Also I *really* want this for Flink, so I coppied and pasted the update,
which compiles- but doesn't work as expected, however it doesn't work as
expected on Spark either- which makes me think this is a case of user
error. I can create a PR to update the Flink 'terp once I get expected
results.

tg



Trevor Grant
Data Scientist
https://github.com/rawkintrevo
http://stackexchange.com/users/3002022/rawkintrevo
http://trevorgrant.org

*"Fortunate is he, who is able to know the causes of things."  -Virgil*


On Fri, Feb 5, 2016 at 2:42 AM, Ruggero Rossi (JIRA) <ji...@apache.org>
wrote:

> Ruggero Rossi created ZEPPELIN-658:
> --------------------------------------
>
>              Summary: Scala: not accepting companion objects if defined in
> different lines
>                  Key: ZEPPELIN-658
>                  URL: https://issues.apache.org/jira/browse/ZEPPELIN-658
>              Project: Zeppelin
>           Issue Type: Improvement
>     Affects Versions: 0.5.6
>          Environment: Linux Centos 7, Spark 1.6, Scala 2.10.6
>             Reporter: Ruggero Rossi
>
>
>
> In Scala 2.10.x, a companion object must be in the same source file as the
> related class, otherwise Scala will not accept it as a proper companion.
> Now, it appears to me that Zeppelin sends every single line in a paragraph
> as a separate line to the Scala REPL.
> Doing so, it makes impossible for the companion object to be accepted.
> I will make an example:. If I write in a Zeppelin paragraph:
>
> // the case class
> case class Person (var name: String, var age: Int)
>
> // the companion object
> object Person {
>   def apply() = new Person("<no name>", 0)
>   def apply(name: String) = new Person(name, 0)
> }
>
> I receive the following error:
> warning: previously defined class Person is not a companion to object
> Person. Companions must be defined together; you may wish to use :paste
> mode for this.
>
> Now, if instead I paste everything on the same line, it works well:
>
> case class Person (var name: String, var age: Int); object Person {  def
> apply() = new Person("<no name>", 0);   def apply(name: String) = new
> Person(name, 0); }
>
> So it looks like this issue could be solved either by writing a text
> processor that parses each line and paste them into a single line using
> semicolons in the right places, or Zeppelin could just send the command
> “:paste” to the Scala REPL (or have a setting that permits so).
>
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)
>