У меня есть таблица в Spark со столбцом date_string
типа string.
Я ищу , чтобы выбрать строки, соответствующие самой последней дате . Я думал, что можно было бы добиться этого одной командой, приведя строковый столбец к цифре c и выбрав строки, соответствующие максимальной дате.
Я пытался
SELECT
*,
CAST(date_string AS INT) AS date
FROM
data.some_table
WHERE
date = MAX(date)
Но это выдает ошибку
Error in SQL statement: AnalysisException: cannot resolve '`date`' given input columns
Поэтому я попытался
SELECT
*,
CAST(date_string AS INT) AS date
FROM
data.some_table
WHERE
date = (SELECT MAX(date_string) FROM data.some_table)
, что выдает мне то же сообщение об ошибке.
И
SELECT
*
FROM
(SELECT *, CAST(date_string AS INT) AS date
FROM data.some_table)
WHERE
date = MAX(date)
дает me
Error in SQL statement: UnsupportedOperationException: Cannot evaluate expression: max(cast(input[71, string, false] as int))
И
SELECT
*,
CAST(date_string AS INT) AS date
FROM
data.some_table
WHERE
CAST(date_string AS INT) = MAX(CAST(date_string AS INT))
выдает мне то же сообщение об ошибке, что и предыдущая команда.
Я новичок и в Spark, и в SQL, поэтому я полностью потерян здесь Какая правильная команда для достижения того, чего я хотел?