2016-08-10 9 views
2

月にdatediffを使用する良い方法はありますか?明確にする:datediffメソッドは2つの列を取り、2つの日付の間に渡されたの数を返します。私は月ににそれを持っています。私は、データをチェックするために私の関数にパラメータを持たせたいのですが、最後の20、36、何ヶ月間であってもデータを確認することができます。私がちょうどdatediffを行い、結果を30(または31)で除算した場合、結果はかなり正確ではありません。私は30.4166667(= 365日/ 12ヶ月)を使用することができますが、それは短期間でもかなり正確ではありません。だから、datediffを使用する方法についてのヒントは、そこから数ヶ月を得ることができる? SQLはSELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');のようなものですが、Sparkでこれを探しています。スパーク - 月間のDatediff?

答えて

2

あなたはmonths_betweenを試すことができます。

import org.apache.spark.sql.functions.* 
DataFrame newDF = df.withColumn("monthDiff", months_between(col("col1"), col("col2"))