Строка XML слишком велика для загрузки с помощью dyplr & dbgetquery ().Есть ли способ проанализировать XML без загрузки текста XML? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть строка XML на сервере.Я хотел бы проанализировать XML с помощью R. Мой код до сих пор выполняет SQL-запрос с ограничением в 20 строк.Когда я загружаю результаты в виде фрейма данных, строка XML слишком длинная, а текст обрезается, в результате чего read_xml выдает ошибку.Любые предложения, как обойти эту проблему?Нужно ли скачивать результаты для его анализа?

Вот мой код:

drv <- odbc::odbc()
impala <- src_impala(
            drv = drv,
            driver = "Cloudera ODBC Driver for Impala",
            host = "host",
            dbname = "default",
            port = 21050)
sqlResults = dbGetQuery(impala,sqlQuery)    
data=sqlResults[2,10]
xmlText=as.character(data)
read_xml(xmlText)

1 Ответ

0 голосов
/ 12 марта 2019

ОБНОВЛЕНИЕ: я смог использовать substring в своем запросе, чтобы создать несколько столбцов с подмножествами строки XML.Затем я запустил запрос с dyplr и загрузил результаты.Затем я использовал функцию unite в tidyr, чтобы объединить строки в полную строку XML.Наконец, я смог проанализировать XML с помощью R read_xml.Мой запрос выглядел примерно так:

Select 
  (substr(xmlText,1,30000))'xmlText1',
  (substr(xmlText,30001,30000))'xmlText2',
  (substr(xmlText,60001,30000))'xmlText3',
  (substr(xmlText,90001,30000))'xmlText4',
  (substr(xmlText,120001,30000))'xmlText5'
From
  myXMLtables
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...