2016-09-22 22 views

答えて

0
今のところ何の機能、時間数で2つの日付の差を計算する(2.0スパーク)がありません

が、日数の違いを計算するものがある:DEF

DateDiff関数を(終了:列、開始:列):列 開始から終了までの日数を返します。 以降 1.5.0

Ref。 Scaladoc - functions

1

私は自分で作成しました。ここには、次のようになります。 -

これは、2つの日付yとxを取り、その結果を日数で返します。私はそれを登録するために以下のコードを使用しました: -

f = udf(time_delta, IntegerType()) 
sqlContext.udf.register("time_diff", time_delta) 

それは魅力のように動作します。次に例を示します。 -

df = df.withColumn("Duration", f(df.end_date, df.start_date)) 
df.show() 

結果は以下のとおりです。 -

Column<unix_timestamp(end_date, %Y-%m-%d %H:%M:%S)> 
+---+-------------------+-------------------+-----+----+--------+ 
| id|   end_date|   start_date|state|city|Duration| 
+---+-------------------+-------------------+-----+----+--------+ 
| 1|2015-10-14 00:00:00|2015-09-14 00:00:00| CA| SF|  30| 
| 2|2015-10-15 01:00:20|2015-08-14 00:00:00| CA| SD|  62| 
| 3|2015-10-16 02:30:00|2015-01-14 00:00:00| NY| NY|  275| 
| 4|2015-10-17 03:00:20|2015-02-14 00:00:00| NY| NY|  245| 
| 5|2015-10-18 04:30:00|2014-04-14 00:00:00| CA| SD|  552| 
+---+-------------------+-------------------+-----+----+--------+ 

私は、Spark SQLでそれを使用することも午前: -

%sql select time_diff(end_date,start_date) from data_loc 

そして結果は以下のとおりです。 - Spark SQL results

関連する問題