[
https://issues.apache.org/jira/browse/SPARK-9435?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15001866#comment-15001866
]
DOAN DuyHai commented on SPARK-9435:
------------------------------------
Same error for me:
{code:java}
// Register computeDecade() as a SparkSQL function
sqlContext.udf().register("computeDecade", (Integer year) ->
computeDecade(year), DataTypes.StringType);
final List<Album> albums = Arrays.asList(new Album(2000, "1"), new
Album(2000, "2"), new Album(2000, "3"));
final JavaRDD<Album> rdd = javaSc.parallelize(albums);
final DataFrame df = sqlContext.createDataFrame(rdd, Album.class);
df.registerTempTable("albums");
final DataFrame dataFrame = sqlContext.sql("SELECT
computeDecade(year),count(title) "+
" FROM albums " +
" GROUP BY computeDecade(year)");
{code}
> Java UDFs don't work with GROUP BY expressions
> ----------------------------------------------
>
> Key: SPARK-9435
> URL: https://issues.apache.org/jira/browse/SPARK-9435
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 1.4.1
> Environment: All
> Reporter: James Aley
> Attachments: IncMain.java, points.txt
>
>
> If you define a UDF in Java, for example by implementing the UDF1 interface,
> then try to use that UDF on a column in both the SELECT and GROUP BY clauses
> of a query, you'll get an error like this:
> {code}
> "SELECT inc(y),COUNT(DISTINCT x) FROM test_table GROUP BY inc(y)"
> org.apache.spark.sql.AnalysisException: expression 'y' is neither present in
> the group by, nor is it an aggregate function. Add to group by or wrap in
> first() if you don't care which value you get.
> {code}
> We put together a minimal reproduction in the attached Java file, which makes
> use of the data in the text file attached.
> I'm guessing there's some kind of issue with the equality implementation, so
> Spark can't tell that those two expressions are the same maybe? If you do the
> same thing from Scala, it works fine.
> Note for context: we ran into this issue while working around SPARK-9338.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]