java - Apache Spark - 数据帧的 datediff?

标签 java apache-spark

我正在尝试根据日期差异计算列。是否有可用于列/数据框的 datediff 相应函数?铁。

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

但在这种情况下,minus 函数不起作用,因为 minmax 列包含日期。所以我需要像 datediff 这样的东西来表示Column。有这样的事吗? 谢谢!

最佳答案

有,它被称为datediff (org.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();
    }
}

关于java - Apache Spark - 数据帧的 datediff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38311425/

相关文章:

java - 强制 Maven 只使用一级依赖

java - 如何使用spark java解压存储在hdfs中的文件

java - 从jsp将多行插入数据库mysql

Java:雅虎通讯录API

java - 如何在 Spring Rest 中获取响应时限制 json 字段

apache-spark - Kerberos Cloudera Hadoop 的 livy curl 请求错误

apache-spark - elastic4s 与 ssl 配置 Elasticsearch 不工作

hadoop - 如何处理不断更新的低延迟图形?

scala - 如何以类型安全的方式创建 Apache Spark 的 `TypedColumn`?

java - Microemu 在 JavaSE 上运行 MIDlet