that explains a lot...
Is there a list of reserved keywords ?

On Wed, Feb 11, 2015 at 7:56 AM, Yin Huai <yh...@databricks.com> wrote:

> Regarding backticks: Right. You need backticks to quote the column name
> timestamp because timestamp is a reserved keyword in our parser.
>
> On Tue, Feb 10, 2015 at 3:02 PM, Mohnish Kodnani <
> mohnish.kodn...@gmail.com> wrote:
>
>> actually i tried in spark shell , got same error and then for some reason
>> i tried to back tick the "timestamp" and it worked.
>>  val result = sqlContext.sql("select toSeconds(`timestamp`) as t,
>> count(rid) as qps from blah group by toSeconds(`timestamp`),qi.clientName")
>>
>> so, it seems sql context is supporting UDF.
>>
>>
>>
>> On Tue, Feb 10, 2015 at 2:32 PM, Michael Armbrust <mich...@databricks.com
>> > wrote:
>>
>>> The simple SQL parser doesn't yet support UDFs.  Try using a HiveContext.
>>>
>>> On Tue, Feb 10, 2015 at 1:44 PM, Mohnish Kodnani <
>>> mohnish.kodn...@gmail.com> wrote:
>>>
>>>> Hi,
>>>> I am trying a very simple registerFunction and it is giving me errors.
>>>>
>>>> I have a parquet file which I register as temp table.
>>>> Then I define a UDF.
>>>>
>>>> def toSeconds(timestamp: Long): Long = timestamp/100000
>>>>
>>>> sqlContext.registerFunction("toSeconds", toSeconds _)
>>>>
>>>> val result = sqlContext.sql("select toSeconds(timestamp) from blah");
>>>> I get the following error.
>>>> java.lang.RuntimeException: [1.18] failure: ``)'' expected but
>>>> `timestamp' found
>>>>
>>>> select toSeconds(timestamp) from blah
>>>>
>>>> My end goal is as follows:
>>>> We have log file with timestamps in microseconds and I would like to
>>>> group by entries with second level precision, so eventually I want to run
>>>> the query
>>>> select toSeconds(timestamp) as t, count(x) from table group by t,x
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to