У меня есть большая потребность в данных для анализа ошибки исключения веб-приложения. Мой подход выглядит следующим образом:Spark dataframe - анализ журналов ошибок журналов приложений
- Поток в журнал ошибок приложения weblogic в hadoop с использованием флюма или других потоковых инструментов.
- Загрузите данные в Spark Dataframe.
- записи Спарк SQL запросов для анализа данных об ошибках
У нас есть таблица журнала ошибок БД. Я буду использовать это как другой источник данных для корреляции исключений БД веб-логики. Данные ошибки weblogic - это формат CSV, разделенный двумя символами канала («||»). Но проблема с входными данными заключается в том, что последние данные столбца распространяются на несколько строк, как показано ниже. Spark рассматривает продолжение последнего столбца на следующей строке как «новую строку», и, следовательно, загрузка становится неудачной. Цените, если кто-нибудь подумает о том, как решить эту проблему.
|| 20160704 || 01: 58: 32294 || 396c0a8e2470e7a21467611910768 || com.seic.dataservices.impl.InstrumentSearchDoImpl || [АКТИВНЫЙ] ExecuteThread: '9' для очереди: 0) .... INSTRUMENT_ID (1004915) PRICE_DATE (01-JUL-16) не существует в таблице TABEL_NAME. Данные о ценах не найден .. ORA-06512: на "Qxx_xxx.ERROR_PKG", строка 502 ORA-06512: на "Qxx_xxx.IM_PRICING", строка 6221 ORA-06512: в строке 1)
-UK
Обновление: отредактирован входной набор данных.
|| 20160704 || 00: 32: 48544 || c0a07f3289f452801467606768492 || com.seic.dataservices.impl.GetInstDetailsForMaintImpl || [АКТИВНЫЙ] ExecuteThread: '12' для очереди: «weblogic.kernel.Default (само- tuning) '|| ERROR || ExceptionFactoryMsg: com.seic.dataservices.lib.DataServiceSqlException - Ошибка - при обработке этого запроса возникло исключение SQL. - EX4 - - q02_Desktop_MS1 # 20160704003248544 # 4 - с дополнительной информацией: (код ошибки: 6550 -) - вызвано (java.sql.SQLException: ORA-06550: строка 1, столбец 25: PLS-00302: компонент 'GET_ASSET_TEMPLATE' должен быть объявлен ORA-06550: строка 1, столбец 7: PL/SQL: заявление игнорируется ) com.seic.dataservices.lib.DataServiceSqlException - Ошибка. При обработке этого запроса возникло исключение SQL. - EX4 - - q02_Desktop_MS1 # 20160704003248544 # 4 - с дополнительной информацией: (код ошибки: 6550 -) - вызвано (java.sql.SQLException: ORA-06550: строка 1, столбец 25: PLS-00302: компонент 'GET_ASSET_TEMPLATE' должен быть объявлен ОР-06550: строка 1, столбец 7: PL/SQL: Заявление игнорируется ) || 20160704 || 00: 32: 48551 || c0a07f3289f452801467606768492 || com.seic.common.presentation.exception.SeiExceptionHandler || [ACTIVE] ExecuteThread: '12' для очереди: 'weblogic.kernel.Default (self-tuning)' || ERROR || Non-SeiException javax.servlet.ServletException: ошибка в базовом классе DesktopAction (исключение) at com.seic.common.presentation.action.DesktopAction.execute (DesktopAction.java:368) по адресу org.apache.struts.chain.commands.servlet.ExecuteAction.execute (ExecuteAction.jav a: 58) на org.apache.struts.chain.commands.AbstractExecuteAction.execute (AbstractExecuteAction.java:67) на org.apache.struts.chain.commands.ActionCommandBase.execute (ActionCommandBase.java:51) at org.apache.commons.chain.impl.ChainBase.execute (ChainBase.java:191) на org.apache.commons.chain.generic.LookupCommand.execute (LookupCommand.java:305) на org.apache.commons. chain.impl.ChainBase.execute (ChainBase.java:191)
Спасибо. Я искал scala или java-код. – uk2016
Теперь я редактировал код scala. –
Спасибо .. Это прекрасно работает там, где входной набор данных имеет только одну запись. Но, когда у меня несколько строк, это не работает. Я редактировал свое оригинальное сообщение, чтобы добавить образец ввода данных – uk2016