2015-11-15 6 views
0

Я пытаюсь использовать Apache Drill (в первый раз) на JSON файл, который выглядит следующим образом:Как запросить HTML, встроенный внутри строки в файл JSON с помощью Apache Drill?

{ 
    "Key1": { 
     "htmltags": "<htmltag attr1='bravo' /><htmltag attr2='delta' /><htmltag attr3='charlie' />" 
    }, 
    "Key2": { 
     "htmltags": "<htmltag attr1='kilo' /><htmltag attr2='lima' /><htmltag attr3='mike' />" 
    }, 
    "Key3": { 
     "htmltags": "<htmltag attr1='november' /><htmltag attr2='foxtrot' /><htmltag attr3='sierra' />" 
    } 
} 

Мой первоначальный запрос был привет мир сверла: SELECT * FROM DataFile.json, и дал мне столбцы Key1 , Key2, Key3. У них был только один ряд, и в нем содержалась запись: "<htmltag attr1='bravo' /><htmltag attr2='delta' /><htmltag attr3='charlie' />" [, т. Е. только запись Key1.htmltags].

У меня есть два вопроса:

  1. Почему там только одна строка, возвращенная, когда было три по-разному значных записей для каждого ключа?
  2. После использования функций KVGEN/FLATTEN, чтобы получить мои строки внутри «htmltags» выше, есть ли способ развернуть HTML-теги (анализировать и извлекать данные)?
+0

Не удалось проверить отправленный json или получить результат от Drill, выполняющего ваш приветственный запрос. Пожалуйста, проверьте json, который вы использовали против сообщения. – catpaws

+0

@catpaws это было репрезентативным оригиналом, жаль, что я не проверял на достоверность. Я исправлю это. –

+0

@catpaws отредактирован, спасибо, что указали его. –

ответ

0

К сожалению, похоже, что дрель не является подходящим инструментом (v1.1.0 на момент написания статьи на Homebrew) для задания.

  1. Похоже, что существует ошибка в системе, поэтому есть только одна строка, несмотря на несколько столбцов. Я подал отчет: https://issues.apache.org/jira/browse/DRILL-4102
  2. Я снова просмотрел документацию, нет инструментов для анализа HTML или XML изначально. В зависимости от строковой манипуляции для этого not a task I relish.

Следовательно, я перейду с помощью анализатора XML, искателя дерева DOM и т. П. И воспользуюсь функцией строки bash для извлечения целевых строк тегов awk/tee.

+0

Существует некоторая экспериментальная поддержка XML в качестве данных источник здесь: https://github.com/magpierre/drill/tree/DRILL-3878/contrib/storage-xml Возможно, это может помочь? –

0

JSON, похоже, плохо сформирован. Объекты явно не идентифицированы парой имя/значение. Это не ясный массив.

Как только будет решена, то значения htmltags должны быть обработаны с помощью строковых функций, таких как местоположение, зиЬзЬг, положение и т.д. (См https://drill.apache.org/docs/string-manipulation/)

может быть лучше иметь htmltags как массивы против всего строка.

+0

Я согласен с тем, что структура не кажется оптимальной, но это то, к чему я был поставлен, чтобы работать с: (не могли бы вы немного расширить часть функции обработки строк с помощью примера? –