Spark 时间函数date_format

本文探讨了使用SparkSQL处理特定时间范围数据的方法,通过对比加与不加单引号的字符串处理方式,揭示了其对结果的影响。演示了如何创建临时视图并应用日期格式化函数来筛选和统计指定区间内的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

楔子

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值