Mysqlのcur_date()-1
と同じ、sparksqlでcurrent_date - 1
dayを取得する方法。
算術関数を使用すると、日付を含む列に対して算術演算を実行できます。
たとえば、2つの日付の差を計算したり、日付に日を追加したり、日付から日を引いたりできます。組み込みの日付算術関数には、datediff
、date_add
、date_sub
、add_months
、last_day
、next_day
、およびmonths_between
。
上記のうち必要なのは
date_sub(timestamp startdate、int days)、目的:TIMESTAMP値から指定された日数を引きます。最初の引数は、TIMESTAMPデータ型で説明されているように、認識された形式を使用する場合、自動的にTIMESTAMPにキャストされる文字列です。戻りタイプ:タイムスタンプ
そして私たちは持っています
current_timestamp()目的:now()関数のエイリアス。戻りタイプ:タイムスタンプ
あなたは選択することができます
date_sub(CAST(current_timestamp() as DATE), 1)
https://spark.Apache.org/docs/1.6.2/api/Java/org/Apache/spark/sql/functions.html を参照してください
このタスクは簡単に実行できます。日付に関連する多くのメソッドがあり、ここで使用できるのはdate_sub
Spark-REPLの例:
scala> spark.sql("select date_sub(current_timestamp(), 1)").show
+----------------------------------------------+
|date_sub(CAST(current_timestamp() AS DATE), 1)|
+----------------------------------------------+
| 2016-12-12|
+----------------------------------------------+
はい、date_sub()
関数は質問に対する権利です。とにかく、選択した回答にエラーがあります:
戻りタイプ:タイムスタンプ
戻り型はdate
である必要があり、date_sub()関数はhh:mm:ss
タイムスタンプの一部であり、date
のみを返します。