Когда есть хорошие данные, я могу сопоставить их со значением (статистическим значением идентификатора) из второй таблицы. Если у меня есть неверные данные, я должен снова сопоставить их со значением статистики 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 ='')
пожалуйста, помогите мне, какие еще варианты использовать в этом сценарии, кроме несуществующих.
Подробнее здесь: https://stackoverflow.com/questions/471 ... not-exists
Мобильная версия