2016-07-11 3 views
0

私は日付の違いに基づいて列を計算しようとしています。列/データフレームで使用できるdatediffの対応する関数はありますか? Fe。Apache Spark - データフレームのためのdatediff?

Column new = old.col("one").divide(old.col("max").minus(old.col("min"))); 

しかしminmax列は日付が含まれているため、この場合には、minus機能は、動作しません。だから、私はColumnのためのdatediffのようなものが必要です。そんなことはありますか? ありがとうございました!

答えて

1

あり、それはdatedifforg.apache.spark.sql.functions.datediff)と呼ばれる:

public static Column datediff(Column end, 
       Column start) 

Returns the number of days from start to end. 

Parameters: 
    end - (undocumented) 
    start - (undocumented) 
Returns: 
    (undocumented) 
Since: 
    1.5.0 

例:

import org.apache.spark.api.java.*; 
import org.apache.spark.SparkConf; 
import org.apache.spark.sql.SQLContext; 
import static org.apache.spark.sql.functions.*; 
import org.apache.spark.sql.DataFrame; 


public class App { 
    public static void main(String[] args) { 
     SparkConf conf = new SparkConf().setMaster("local"); 
     JavaSparkContext sc = new JavaSparkContext(conf); 
     SQLContext sqlContext= new SQLContext(sc); 

     DataFrame df = sqlContext.sql(
      "SELECT CAST('2012-01-01' AS DATE), CAST('2013-08-02' AS DATE)").toDF("first", "second"); 
     df.select(datediff(df.col("first"), df.col("second"))).show(); 
    } 
} 
関連する問題