Когда есть хорошие данные, я могу сопоставить их со значением (статистическим значением идентификатора) из второй таблицы. Если у меня есть неверные данные, я должен снова сопоставить их со значением статистики id (но с другим значением). однако я не могу использовать не существует в искровом SQL. И я получаю сообщение об ошибке ниже:
несоответствующий ввод «от», ожидающий {, «ГДЕ», «ГРУППА», «ЗАКАЗАТЬ», «НАЛИЧИЕ», «ОГРАНИЧЕНИЕ», 'ЛАТЕРАЛ', 'ОКНО', 'СОЕДИНЕНИЕ', 'ИСКЛЮЧАЯ', 'ПЕРЕСЕЧЕНИЕ', 'СОРТИРОВКА', 'КЛАСТЕР', 'РАСПРЕДЕЛИТЬ'}(строка 1, позиция 386)
Код: Выделить всё
at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:197)
at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:99)
at org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:45)
КОД:
Код: Выделить всё
select
a.ptf_id,a.ptf_code,a.share_id,a.share_code,a.bench_id,a.bench_code
, a.l1_calculation_date,a.l1_begin_date,a.l1_end_date,a.l1_running_date
, a.l1_frequency,a.l1_calculation_step,a.l1_performance_currency
, a.l1_configuration,a.l1_valuation_source,a.l1_nav_valuation_type
, a.l1_setting_reference_type, a.l1_setting_valuation_type
, a.l1_sharpe_ratio_annualized as value,b.id_statistic
from
parquetFile a,
pairRDD b,
stats c
where
a.l1_nav_valuation_type= b.l1_nav_valuation_type
and a.l1_valuation_source = b.l1_valuation_source
and b.l1_Perf = 'l1_sharpe_ratio_annualized'
OR (a.ptf_id not EXISTS (
select e.ptf_id from pairRDD d, parquetFile e
where d.l1_valuation_source = e.l1_valuation_source
AND d.l1_nav_valuation_type = e.l1_nav_valuation_type)
and b.l1_valuation_source ='')
пожалуйста, помогите мне, какие еще варианты использовать в этом сценарии, кроме несуществующих.
этот запрос работает в SQL, если я использую «НЕ в»
пожалуйста, помогите мне, какие еще варианты использовать в этом сценарии, кроме несуществующих.
этот запрос работает в SQL, если я использую «НЕ в». п>
Подробнее здесь: https://stackoverflow.com/questions/471 ... not-exists
Мобильная версия