Я положил некоторые файлы журнала в SQL таблиц через Спарк и моя схема выглядит следующим образом:отказ запроса SparkSQL Отметка
|-- timestamp: timestamp (nullable = true)
|-- c_ip: string (nullable = true)
|-- cs_username: string (nullable = true)
|-- s_ip: string (nullable = true)
|-- s_port: string (nullable = true)
|-- cs_method: string (nullable = true)
|-- cs_uri_stem: string (nullable = true)
|-- cs_query: string (nullable = true)
|-- sc_status: integer (nullable = false)
|-- sc_bytes: integer (nullable = false)
|-- cs_bytes: integer (nullable = false)
|-- time_taken: integer (nullable = false)
|-- User_Agent: string (nullable = true)
|-- Referrer: string (nullable = true)
Как вы можете заметить, что я создал поле метки времени, которое я прочитал поддерживается Спарк (Дата Wouldn работаю, насколько я понял). Я бы хотел использовать для запросов типа «where timestamp> (2012-10-08 16: 10: 36.0)», но когда я его запускаю, я продолжаю получать ошибки. Я пробовал эти две следующие формы sintax: Для второго я разбираю строку так, чтобы Im Im Im передавал ее в формате timestamp. Я использую 2 функции: parse и date2timestamp.
Любой намек на то, как я должен обрабатывать значения метки времени?
Спасибо!
1) Скала>sqlContext.sql ("SELECT * FROM Logs, как л где l.timestamp = (2012-10-08 16: 10: 36,0)".) Собирают
java.lang.RuntimeException: [1.55] failure: ``)'' expected but 16 found
SELECT * FROM Logs as l where l.timestamp=(2012-10-08 16:10:36.0)
^
2) sqlContext.sql ("SELECT * FROM Logs, как л где l.timestamp =" + date2timestamp (formatTime3.parse ("2012-10-08 16: 10: 36.0")).) собирать
java.lang.RuntimeException: [1.54] failure: ``UNION'' expected but 16 found
SELECT * FROM Logs as l where l.timestamp=2012-10-08 16:10:36.0
^
Я уже пытался ставить одиночные кавычки вокруг метки времени и, похоже, он не читает его как метку времени, так как результирующий набор пуст, и он не должен» т. Я также попробовал предложение CAST AS, но он тоже не работает.Я специально получаю эту ошибку: java.lang.RuntimeException: [1.76] failure: '' STRING '' ожидается, но идентификатор TIMESTAMP найден – bobo32