Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在spark SQL中查找温度变化1度时的开始时间和结束时间_Sql_Apache Spark_Apache Spark Sql - Fatal编程技术网

在spark SQL中查找温度变化1度时的开始时间和结束时间

在spark SQL中查找温度变化1度时的开始时间和结束时间,sql,apache-spark,apache-spark-sql,Sql,Apache Spark,Apache Spark Sql,我们在表中有ID、时间、温度列。我们需要确定温度的准确1度变化及其开始和结束时间,我们每一分钟获得一次读数,但有几次读数可能不存在。这将是一个时间序列数据 ID , TimeStamp , Temp(F) 1, 2019-12-20 10:08:35 74.1 2, 2019-12-20 10:08:40 74.3 1, 2019-12-20 10:09:37 73.7 2, 2019-12-20 10:09:40 74.2 3, 2019-12

我们在表中有ID、时间、温度列。我们需要确定温度的准确1度变化及其开始和结束时间,我们每一分钟获得一次读数,但有几次读数可能不存在。这将是一个时间序列数据

    ID , TimeStamp  , Temp(F)
    1, 2019-12-20 10:08:35 74.1
    2, 2019-12-20 10:08:40 74.3
    1, 2019-12-20 10:09:37 73.7
    2, 2019-12-20 10:09:40 74.2
    3, 2019-12-20 10:09:40 74.0
    1, 2019-12-20 10:10:32 73.5
    1, 2019-12-20 10:12:02 73.0
    2, 2019-12-20 10:12:40 73.3
    1, 2019-12-20 10:13:35 73.3
    2, 2019-12-20 10:13:40 73.1
    1, 2019-12-20 10:14:37 73.0
    2, 2019-12-20 10:14:40 72.9
    3, 2019-12-20 10:15:42 72.7
    1, 2019-12-20 10:15:43 72.7
    1, 2019-12-20 10:16:47 72.4
    2, 2019-12-20 10:16:40 72.5
    1, 2019-12-20 10:17:57 72.0
    2, 2019-12-20 10:17:40 72.3
    1, 2019-12-20 10:18:47 72.0
    2, 2019-12-20 10:18:40 72.0
    1, 2019-12-20 10:19:50 72.4
    2, 2019-12-20 10:19:50 72.3
    1, 2019-12-20 10:20:51 72.7
    2, 2019-12-20 10:20:50 72.8
    1, 2019-12-20 10:21:53 72.7
    2, 2019-12-20 10:22:50 73.0
    1, 2019-12-20 10:23:53 73.0
    2, 2019-12-20 10:23:50 72.9
    1, 2019-12-20 10:23:57 73.1
    2, 2019-12-20 10:23:56 72.7
在上面的数据集中,我只需要当温度降低1度时,它们的开始时间和结束时间最好没有UDF,目前我的框架无法处理UDF

最终的结果是,当温差持续减小时,温差正好变化1度

    ID,     Start Time,           End Time, 
    2, 2019-12-20 10:08:40   2019-12-20 10:12:40
    1, 2019-12-20 10:09:37   2019-12-20 10:15:43
*注:对于ID 2,2019-12-20 10:12:40和2019-12-20 10:17:40之间的温差为1度,但在此期间,温度先降低后升高,因此该记录不应出现在结果中


如何使用SQL实现这一点?是否可以单独使用SQL?

对于ID-1,从2019-12-20 10:09:37到2019-12-20 10:15:43,温度更改为:73.7->73.5->73.0->73.3->73.0->72.7,这与您的要求不符。但2019-12-20 10:12:40和2019-12-20 10:17:40之间的ID-2并不匹配。您能澄清一下吗?对于2019-12-20 10:09:37到2019-12-20 10:15:43的ID-1,温度更改为:73.7->73.5->73.0->73.3->73.0->72.7,这与您的要求不符。但2019-12-20 10:12:40和2019-12-20 10:17:40之间的ID-2并不匹配。你能澄清一下吗?