Spark 时间函数date_format

楔子

读取json文件,但是时间2016-10-01 15:42:46 需要进行操作。使用spark SQL提供的时间函数

官网参考

demo

private static void top(SparkSession sparkSession, Dataset<Row> logDS, Dataset<Row> userDataset) {
	String startTime = "2016-10-01";
	String endTime = "2016-11-01";
	System.out.println("--统计特定时间内访问最多的Top5--");
	logDS.createOrReplaceTempView("tmp_log");
	// sparkSession.sql("select date_format(time, 'yyyy-MM-dd') from
	// tmp_log").show();
	userDataset.createOrReplaceTempView("tmp_user");
	long count = logDS.filter("date_format(time, 'yyyy-MM-dd') >= " + startTime + " and date_format(time, 'yyyy-MM-dd') <=" + endTime).count();
	System.out.println("字符加单引号的结果" + count);
	long count2 = logDS.filter("date_format(time, 'yyyy-MM-dd') >= '" + startTime + "' and date_format(time, 'yyyy-MM-dd') <='" + endTime + "'").count();
	System.out.println("字符加单引号的结果" + count);
	System.out.println("字符不加单引号的结果" + count2);

	// 字符加单引号的结果0
	// 字符不加单引号的结果5973
}

需要注意的是使用比较时 是否加单引号 对结果影响很大,不加会影响结果 。如下图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值