在Spark SQL中以时间戳连接两个表
我正在尝试使用以下查询连接两个表:在Spark SQL中以时间戳连接两个表,sql,apache-spark,pyspark,apache-spark-sql,Sql,Apache Spark,Pyspark,Apache Spark Sql,我正在尝试使用以下查询连接两个表: results = sqlContext.sql('SELECT * \ FROM airlines a \ INNER JOIN LATERAL ( \ SELECT * \ FROM weather w \
results = sqlContext.sql('SELECT * \
FROM airlines a \
INNER JOIN LATERAL ( \
SELECT * \
FROM weather w \
WHERE w.CALL_SIGN = a.ORIGIN \
AND w.WEATHER_TIMESTAMP BETWEEN a.CRS_DEP_TIME - INTERVAL 15 MINUTES AND a.CRS_DEP_TIME + INTERVAL 15 MINUTES \
ORDER BY w.WEATHER_TIMESTAMP DESC \
LIMIT 1 ) \
ON a.ORIGIN = w.CALL_SIGN').cache()
我遇到了一个无法在内部联接中引用airlines
表的问题。我尝试添加LATERAL
关键字,希望Spark SQL像Postgres一样支持它,但没有效果。我不知道如何解决这个问题,有什么建议吗?试试这个
”选择*\
来自a航空公司\
内连接(\
选择*\
来自天气w\
内联航空公司
其中w.呼叫符号=a.原点\
和w.WEATHER_时间戳介于a.CRS_DEP_时间-间隔15分钟和a.CRS_DEP_时间+间隔15分钟之间\
按w.WEATHER_时间戳说明订购\
限制1)x\
在a.ORIGIN=x.CALL_符号'
试试这个
”选择*\
来自a航空公司\
内连接(\
选择*\
来自天气w\
内联航空公司
其中w.呼叫符号=a.原点\
和w.WEATHER_时间戳介于a.CRS_DEP_时间-间隔15分钟和a.CRS_DEP_时间+间隔15分钟之间\
按w.WEATHER_时间戳说明订购\
限制1)x\
在a.ORIGIN=x.CALL_符号'
如果我真的缩小了表格,但整个集合都超时了,它就起作用了。如果我真的缩小了表格,但整个集合都超时了,它就起作用了。