Spark SQL для разделения количества из двух разных запросов

Я работаю над Spark SQL, используя Scala. У меня есть требование, когда мне нужно разделить счет из двух запросов.

Запрос 1 – select count(1) from table_1 where flag = 'Y'

Запрос 2 – select count(1) from table_2 where flag = 'N'

Теперь мне нужно разделить количество из запроса 1 и запроса 2.

val divideValue = sqlContext.sql("
SELECT count(*) FROM table_1 where y != 'yes'/SELECT count(*) FROM table_2 where y = 'yes'
")

Вышеуказанное не работает. Пожалуйста, предложите с фактическим запросом


person Rathish MK    schedule 02.11.2017    source источник


Ответы (2)


Проверь это.

Используйте уникальный запрос количества столбцов. как .ID и используя самосоединение, мы можем получить это

select count(distinct  t1.id) Y_count,  count(distinct  t2.id) N_Count, 
count(distinct  t1.id)/count(distinct  t2.id) divideCount
from #table t1, #table t2  
where t1.flag='Y' and t2.flag='N'
person Mr. Bhosale    schedule 02.11.2017
comment
Большое спасибо, мистер Бхосале. - person Rathish MK; 19.11.2017

Вы можете попробовать это:

val count1 = sqlContext.sql("SELECT count(*) FROM table_1 where y != 'yes')
val count2 = sqlContext.sql("SELECT count(*) FROM table_2 where y = 'yes'")
val value1 = count1.head().getLong(0)
val value2 = count2.head().getLong(0)
val finalValue = value1/value2
person Naman Agarwal    schedule 02.11.2017