Sql 汉克斯。这不是你在问的吗”。我想把两个表连接起来,这样表1中的每一条记录都与表2上的第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。c2的第一个输出不正确。这里应该是141.16。谢谢。你不

Sql 汉克斯。这不是你在问的吗”。我想把两个表连接起来,这样表1中的每一条记录都与表2上的第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。c2的第一个输出不正确。这里应该是141.16。谢谢。你不,sql,apache-spark-sql,Sql,Apache Spark Sql,汉克斯。这不是你在问的吗”。我想把两个表连接起来,这样表1中的每一条记录都与表2上的第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。c2的第一个输出不正确。这里应该是141.16。谢谢。你不是在问这个问题吗”。我想把两个表连接起来,这样表1中的每一条记录都会与表2上第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。 For e.g. Table1 Tab


汉克斯。这不是你在问的吗”。我想把两个表连接起来,这样表1中的每一条记录都与表2上的第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。c2的第一个输出不正确。这里应该是141.16。谢谢。你不是在问这个问题吗”。我想把两个表连接起来,这样表1中的每一条记录都会与表2上第一个较低的时间戳连接起来。”是的,所以142.13应该与141.16连接起来,141.16刚好低于142.13。
For e.g. 
Table1       Table2
142.13       141.16 
157.34       145.45
168.45       155.85
170.23       166.76
             168.44

Joined Table should be:
142.13,141.16
157.34,155.85
168.45,166.76
170.23,168.44
  with t1 as (
           select 142.13 v from dual union all
           select 157.34 v from dual union all
           select 168.45 v from dual union all
           select 170.23 v from dual 
        ),
        t2 as (
        select 141.16 v from dual union all 
        select 145.45 v from dual union all
        select 155.85 v from dual union all
        select 166.76 v from dual union all
        select 168.44 v from dual 
        )
  select v, ( select max(v) from t2 where t2.v <= t1.v )
    from t1;


           V (SELECTMAX(V)FROMT2WHERET2.V<=T1.V)
  ---------- -----------------------------------
      142.13                              141.16
      157.34                              155.85
      168.45                              168.44
      170.23                              168.44

  4 rows selected.
  select t1.v, ( select max(t2.v) from table2 t2 where t2.v <= t1.v ) from table1 t1
select t1.v, max(t2.v)
from table1 t1
join table2 t2 on t2.v <= t1.v
group by t1.v
order by t1.v;
val t1 = spark.sparkContext.parallelize(Seq(142.13, 157.34, 168.45, 170.23)).toDF("c1")
val t2 = spark.sparkContext.parallelize(Seq(141.16,145.45,155.85,166.76,168.44)).toDF("c2")

val t11 = t1.withColumn("id", monotonically_increasing_id())
val t22 = t2.withColumn("id", monotonically_increasing_id())

val res = t11.join(t22, t11("id") + 1 === t22("id") ).drop("id")
+------+------+
|    c1|    c2|
+------+------+
|142.13|145.45|
|168.45|166.76|
|157.34|155.85|
|170.23|168.44|
+------+------+