2015-11-19 56 views
0

有它在星火SQL支持获取当前日期的任何日期的功能?星火SQL模拟“SYSDATE”或“CURRENT_DATE”

+0

您是否尝试过搜索已经有答案了?你还试过了什么?除非星火SQL实现比SQL规格完全不同,你应该只能够'SELECT NOW();'获得当前的时间戳。 –

+0

'current_date'似乎工作:https://databricks.com/blog/2015/09/16/spark-1-5-dataframe-api-highlights-datetimestring-handling-time-intervals-and-udafs.html – ebyrob

+1

我试图寻找和使用“NOW()”和“CURRENT_DATE”但我得到了以下情况除外: 异常线程“main” org.apache.spark.sql.AnalysisException:NOW未定义功能; 异常线程“main” org.apache.spark.sql.AnalysisException:无法解析“CURRENT_DATE”给定的输入栏; – Alex

回答

1

,我发现我的问题的解决方案在使用org.apache.spark.sql.hive.HiveContext代替org.apache.spark.sql.SQLContext。现在,下面的代码按预期工作:

lazy val sc = ... // create Spak Context 
lazy val hc = new HiveContext(sc) 
val results = hc.sql("SELECT record_name as name FROM test_table WHERE day < current_date") 
results.take(10) 
    .map(r => s"name: ${r.getAs("name")}") 
    .foreach(println) 
1

CURRENT_DATE()为我工作在星火1.5

用法示例:

sqlContext.sql("SELECT current_date() as today FROM eventsAvro").first 

输出:

res360: org.apache.spark.sql.Row = [2016-01-29]