Spark2 - org.apache.spark.sql.catalyst.parser.ParseException

Получение ниже:

org.apache.spark.sql.catalyst.parser.ParseException: посторонний ввод '' ожидание {'(', 'ВЫБРАТЬ', 'ОТ', 'ДОБАВИТЬ', 'AS', 'ВСЕ', 'ОТЛИЧИТЬ', 'ГДЕ ',' GROUP ',' BY ',' GROUPING ',' SETS ',' CUBE ',' ROLLUP ',' ORDER ',' HAVING ',' LIMIT ',' AT ',' OR ',' AND ', 'IN', NOT, 'NO', 'EXISTS', 'BETWEEN', 'LIKE', RLIKE, 'IS', 'NULL', 'TRUE', 'FALSE', 'NULLS', 'ASC', 'DESC ',' FOR ',' INTERVAL ',' CASE ', 'WHEN ',' THEN', 'ELSE', 'END', 'JOIN', 'CROSS', 'OUTER', 'INNER', 'LEFT', "SEMI", "RIGHT", "FULL", "NATURAL", "ON", "LATERAL", "WINDOW", "OVER", "PARTITION", "RANGE", "ROWS", "UNBOUNDED", "PRECEDING', 'FOLLOWING', 'CURRENT', 'FIRST', 'AFTER', 'LAST', 'ROW', 'WITH', 'VALUES', 'CREATE', 'TABLE', 'VIEW', 'REPLACE', 'INSERT', 'DELETE', 'INTO', 'DESCRIBE', 'EXPLAIN', 'FORMAT', 'LOGICAL', 'CODEGEN', 'COST', 'CAST', 'SHOW', 'TABLES', 'COLUMNS', 'COLUMN', 'USE', 'PARTITIONS', 'FUNCTIONS', 'DROP', 'UNION', 'EXCEPT', 'MINUS', 'INTERSECT', 'TO', 'TABLESAMPLE', 'STRATIFY', "ALTER", "RENAME", "ARRAY", "MAP", "STRUCT", "COMMENT', 'SET', 'RESET', 'DATA', 'START', 'TRANSACTION', 'COMMIT', 'ROLLBACK', 'MACRO', 'IGNORE', 'IF', '+', '-', '*', 'DIV', '~', 'PERCENT', 'BUCKET', 'OUT', 'OF', 'SORT', 'CLUSTER', 'DISTRIBUTE', 'OVERWRITE', 'TRANSFORM', ' УМЕНЬШИТЬ, "ИСПОЛЬЗОВАТЬ", "SERDE", "SERDEPROPERTIES", "RECORDREADER", "RECORDWRITER", "DELIMITED", "FIELDS", "TERMINATED", "COLLECTION", "ITEMS", "KEYS", "ESCAPED", "LINES", "SEPARATED", "FUNCTION", "EXTENDED", "REFRESH", "CLEAR", "CACHE", "UNCACHE", "LAZY", "FORMATTED", "GLOBAL", "TEMPORARY", "OPTIONS", "UNSET", "TBLPROPERTIES", "DBPROPERTIES", "BUCKETS", "SKEWED", "STORED", "DIRECTORIES", "LOCATION", "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT", " TOUCH "," COMPACT "," CONCATENATE "," CHANGE "," CASCADE "," RESTRICT "," CLUSTERED "," SORTED "," PURGE "," INPUTFORMAT "," OUTPUTFORMAT "," Базы данных "," Базы данных "," DFS ", 'TRUNCATE', 'ANALYZE', 'COMPUTE', 'LIST', 'STATISTICS', 'PARTITIONED', 'EXTERNAL', 'DEFINED', 'REVOKE', 'GRANT', 'LOCK', 'UNLOCK', 'MSCK', 'REPAIR', 'RECOVER', 'EXPORT', ' ИМПОРТ "," ЗАГРУЗКА "," РОЛЬ "," РОЛИ "," СЖАТИЯ "," ОСНОВНЫЕ "," СДЕЛКИ "," ИНДЕКС "," ИНДЕКСЫ "," ЗАМКИ "," ОПЦИЯ "," АНТИ "," МЕСТНЫЙ ", 'INPATH', 'CURRENT_DATE', 'CURRENT_TIMESTAMP', STRING, BIGINT_LITERAL, SMALLINT_LITERAL, TINYINT_LITERAL, INTEGER_VALUE, DECIMAL_VALUE, DOUBLE_LITERAL, BIGDECIMALIDIFIENTI_LIFT

== SQL == ВЫБРАТЬ txn_mth, txn_mth_id, breakout_y_n, week_day, ---------------------------------------------^^^ week_no, CBE_NET_BPS FROM таблица A левая таблица соединений B b

Также попробовал изменить:

бросьте (a.weekday as String) как week_day,

получить ту же ошибку, но отлично работает с Spark 1.6. Получение ошибки только при использовании Spark 2. Есть идеи об ошибке?

Полный запрос:

val query = s"""SELECT
        txn_mth,
        txn_mth_id,
        a.arrival_days,
        week_day, 
        week_no,
        if(a.arrival_days=b.arrival_days,b.cum_ntpv,c.global_ntpv) as global_ntpv,
        CBE_NET,
         calcBasisPoints(CBE_NET,a.arrival_days,b.arrival_days,b.cum_ntpv,c.global_ntpv) as CBE_NET_BPS
        FROM tableA a
        left join tableB b
        on a.mth = b.mth
        left join  tableC c
        on a.mth = c.mth"""

val data =spark.sql(query)

1 ответ

Попробуйте как ниже

Val q = s”””(ваш запрос) q”””

Как вы уже упоминали, запрос работает в 1.6, попробуйте выше.

Другие вопросы по тегам