Brandon Krieger created SPARK-24488:
---------------------------------------

             Summary: Analyzer throws when generator is aliased multiple times
                 Key: SPARK-24488
                 URL: https://issues.apache.org/jira/browse/SPARK-24488
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.3.0
            Reporter: Brandon Krieger


Currently, the Analyzer throws an exception if your try to nest a generator. 
However, it special cases generators "nested" in an alias, and allows that. If 
you try to alias a generator twice, it is not caught by the special case, so an 
exception is thrown:

 
{code:java}
scala> Seq(("a", "b"))
    .toDF("col1","col2")
    .select(functions.array('col1,'col2).as("arr"))
    .select(functions.explode('arr).as("first").as("second"))
    .collect()
org.apache.spark.sql.AnalysisException: Generators are not supported when it's 
nested in expressions, but got: explode(arr) AS `qqq`;
at 
org.apache.spark.sql.catalyst.analysis.Analyzer$ExtractGenerator$$anonfun$apply$23.applyOrElse(Analyzer.scala:1604)
at 
org.apache.spark.sql.catalyst.analysis.Analyzer$ExtractGenerator$$anonfun$apply$23.applyOrElse(Analyzer.scala:1601)
{code}
 

In reality, aliasing twice is fine, so we can fix this by trimming non 
top-level aliases.



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

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

Reply via email to