Spark 时间函数date_format

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012848709/article/details/85867768

楔子

读取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
}

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

猜你喜欢

转载自blog.csdn.net/u012848709/article/details/85867768
今日推荐