Can you pastebin your Java code and the command you used to compile ?

Thanks

> On Oct 13, 2015, at 1:42 AM, Umesh Kacha <umesh.ka...@gmail.com> wrote:
> 
> Hi Ted if fix went after 1.5.1 release then how come it's working with 1.5.1 
> binary in spark-shell.
> 
>> On Oct 13, 2015 1:32 PM, "Ted Yu" <yuzhih...@gmail.com> wrote:
>> Looks like the fix went in after 1.5.1 was released. 
>> 
>> You may verify using master branch build. 
>> 
>> Cheers
>> 
>>> On Oct 13, 2015, at 12:21 AM, Umesh Kacha <umesh.ka...@gmail.com> wrote:
>>> 
>>> Hi Ted, thanks much I tried using percentile_approx in Spark-shell like you 
>>> mentioned it works using 1.5.1 but it doesn't compile in Java using 1.5.1 
>>> maven libraries it still complains same that callUdf can have string and 
>>> column types only. Please guide.
>>> 
>>>> On Oct 13, 2015 12:34 AM, "Ted Yu" <yuzhih...@gmail.com> wrote:
>>>> SQL context available as sqlContext.
>>>> 
>>>> scala> val df = Seq(("id1", 1), ("id2", 4), ("id3", 5)).toDF("id", "value")
>>>> df: org.apache.spark.sql.DataFrame = [id: string, value: int]
>>>> 
>>>> scala> df.select(callUDF("percentile_approx",col("value"), 
>>>> lit(0.25))).show()
>>>> +------------------------------+
>>>> |'percentile_approx(value,0.25)|
>>>> +------------------------------+
>>>> |                           1.0|
>>>> +------------------------------+
>>>> 
>>>> Can you upgrade to 1.5.1 ?
>>>> 
>>>> Cheers
>>>> 
>>>>> On Mon, Oct 12, 2015 at 11:55 AM, Umesh Kacha <umesh.ka...@gmail.com> 
>>>>> wrote:
>>>>> Sorry forgot to tell that I am using Spark 1.4.1 as callUdf is available 
>>>>> in Spark 1.4.0 as per JAvadocx
>>>>> 
>>>>>> On Tue, Oct 13, 2015 at 12:22 AM, Umesh Kacha <umesh.ka...@gmail.com> 
>>>>>> wrote:
>>>>>> Hi Ted thanks much for the detailed answer and appreciate your efforts. 
>>>>>> Do we need to register Hive UDFs?
>>>>>> 
>>>>>> sqlContext.udf.register("percentile_approx");???//is it valid?
>>>>>> 
>>>>>> I am calling Hive UDF percentile_approx in the following manner which 
>>>>>> gives compilation error
>>>>>> 
>>>>>> df.select("col1").groupby("col1").agg(callUdf("percentile_approx",col("col1"),lit(0.25)));//compile
>>>>>>  error
>>>>>> 
>>>>>> //compile error because callUdf() takes String and Column* as arguments.
>>>>>> 
>>>>>> Please guide. Thanks much.
>>>>>> 
>>>>>>> On Mon, Oct 12, 2015 at 11:44 PM, Ted Yu <yuzhih...@gmail.com> wrote:
>>>>>>> Using spark-shell, I did the following exercise (master branch) :
>>>>>>> 
>>>>>>> 
>>>>>>> SQL context available as sqlContext.
>>>>>>> 
>>>>>>> scala> val df = Seq(("id1", 1), ("id2", 4), ("id3", 5)).toDF("id", 
>>>>>>> "value")
>>>>>>> df: org.apache.spark.sql.DataFrame = [id: string, value: int]
>>>>>>> 
>>>>>>> scala> sqlContext.udf.register("simpleUDF", (v: Int, cnst: Int) => v * 
>>>>>>> v + cnst)
>>>>>>> res0: org.apache.spark.sql.UserDefinedFunction = 
>>>>>>> UserDefinedFunction(<function2>,IntegerType,List())
>>>>>>> 
>>>>>>> scala> df.select($"id", callUDF("simpleUDF", $"value", lit(25))).show()
>>>>>>> +---+--------------------+
>>>>>>> | id|'simpleUDF(value,25)|
>>>>>>> +---+--------------------+
>>>>>>> |id1|                  26|
>>>>>>> |id2|                  41|
>>>>>>> |id3|                  50|
>>>>>>> +---+--------------------+
>>>>>>> 
>>>>>>> Which Spark release are you using ?
>>>>>>> 
>>>>>>> Can you pastebin the full stack trace where you got the error ?
>>>>>>> 
>>>>>>> Cheers
>>>>>>> 
>>>>>>>> On Fri, Oct 9, 2015 at 1:09 PM, Umesh Kacha <umesh.ka...@gmail.com> 
>>>>>>>> wrote:
>>>>>>>> I have a doubt Michael I tried to use callUDF in  the following code 
>>>>>>>> it does not work. 
>>>>>>>> 
>>>>>>>> sourceFrame.agg(callUdf("percentile_approx",col("myCol"),lit(0.25)))
>>>>>>>> 
>>>>>>>> Above code does not compile because callUdf() takes only two arguments 
>>>>>>>> function name in String and Column class type. Please guide.
>>>>>>>> 
>>>>>>>>> On Sat, Oct 10, 2015 at 1:29 AM, Umesh Kacha <umesh.ka...@gmail.com> 
>>>>>>>>> wrote:
>>>>>>>>> thanks much Michael let me try. 
>>>>>>>>> 
>>>>>>>>>> On Sat, Oct 10, 2015 at 1:20 AM, Michael Armbrust 
>>>>>>>>>> <mich...@databricks.com> wrote:
>>>>>>>>>> This is confusing because I made a typo...
>>>>>>>>>> 
>>>>>>>>>> callUDF("percentile_approx", col("mycol"), lit(0.25))
>>>>>>>>>> 
>>>>>>>>>> The first argument is the name of the UDF, all other arguments need 
>>>>>>>>>> to be columns that are passed in as arguments.  lit is just saying 
>>>>>>>>>> to make a literal column that always has the value 0.25.
>>>>>>>>>> 
>>>>>>>>>>> On Fri, Oct 9, 2015 at 12:16 PM, <saif.a.ell...@wellsfargo.com> 
>>>>>>>>>>> wrote:
>>>>>>>>>>> Yes but I mean, this is rather curious. How is def lit(literal:Any) 
>>>>>>>>>>> --> becomes a percentile function lit(25)
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> Thanks for clarification
>>>>>>>>>>> 
>>>>>>>>>>> Saif
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> From: Umesh Kacha [mailto:umesh.ka...@gmail.com] 
>>>>>>>>>>> Sent: Friday, October 09, 2015 4:10 PM
>>>>>>>>>>> To: Ellafi, Saif A.
>>>>>>>>>>> Cc: Michael Armbrust; user
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> Subject: Re: How to calculate percentile of a column of DataFrame?
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> I found it in 1.3 documentation lit says something else not percent
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> public static Column lit(Object literal)
>>>>>>>>>>> Creates a Column of literal value.
>>>>>>>>>>> 
>>>>>>>>>>> The passed in object is returned directly if it is already a 
>>>>>>>>>>> Column. If the object is a Scala Symbol, it is converted into a 
>>>>>>>>>>> Column also. Otherwise, a new Column is created to represent the 
>>>>>>>>>>> literal value.
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> On Sat, Oct 10, 2015 at 12:39 AM, <saif.a.ell...@wellsfargo.com> 
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Where can we find other available functions such as lit() ? I can’t 
>>>>>>>>>>> find lit in the api.
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> Thanks
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> From: Michael Armbrust [mailto:mich...@databricks.com] 
>>>>>>>>>>> Sent: Friday, October 09, 2015 4:04 PM
>>>>>>>>>>> To: unk1102
>>>>>>>>>>> Cc: user
>>>>>>>>>>> Subject: Re: How to calculate percentile of a column of DataFrame?
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> You can use callUDF(col("mycol"), lit(0.25)) to call hive UDFs from 
>>>>>>>>>>> dataframes.
>>>>>>>>>>> 
>>>>>>>>>>>  
>>>>>>>>>>> 
>>>>>>>>>>> On Fri, Oct 9, 2015 at 12:01 PM, unk1102 <umesh.ka...@gmail.com> 
>>>>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Hi how to calculate percentile of a column in a DataFrame? I cant 
>>>>>>>>>>> find any
>>>>>>>>>>> percentile_approx function in Spark aggregation functions. For e.g. 
>>>>>>>>>>> in Hive
>>>>>>>>>>> we have percentile_approx and we can use it in the following way
>>>>>>>>>>> 
>>>>>>>>>>> hiveContext.sql("select percentile_approx("mycol",0.25) from 
>>>>>>>>>>> myTable);
>>>>>>>>>>> 
>>>>>>>>>>> I can see ntile function but not sure how it is gonna give results 
>>>>>>>>>>> same as
>>>>>>>>>>> above query please guide.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context: 
>>>>>>>>>>> http://apache-spark-user-list.1001560.n3.nabble.com/How-to-calculate-percentile-of-a-column-of-DataFrame-tp25000.html
>>>>>>>>>>> Sent from the Apache Spark User List mailing list archive at 
>>>>>>>>>>> Nabble.com.
>>>>>>>>>>> 
>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>> To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
>>>>>>>>>>> For additional commands, e-mail: user-h...@spark.apache.org

Reply via email to