我试图从两个temp表的总数计算processrate,但是我得到了一个错误“detected implicit cartesian product for internal join between logical plan”,我甚至没有执行连接。我确信这个错误可以通过以正确的格式重新构造查询来解决,我需要你的帮助。下面是问题,
spark.sql("""
CREATE OR REPLACE TEMPORARY VIEW final_processRate AS
SELECT
((a.total - b.total)/a.total))* 100 AS processRate
FROM
(select count (*) as total from sales) a,
(select count (*) as total from sales where status = 'PENDING') b
""")
我在尝试使用查看数据时出错,
spark.sql("select * from processRate limit 10").show(false)
您能帮助格式化上述查询以解决此问题并查看 final_processRate
?
2条答案
按热度按时间wmtdaxz31#
我会这样写:
这将返回未挂起的行的比例。
inb24sb22#
对此不需要子查询。只需使用条件聚合:
然后可以使用以下命令查询临时视图:
这应该给你一个单一的数字/百分比以上计算。