2015-11-19 62 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]