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, попробуйте выше.