Невозможно создать экземпляр `org.apache.drill.exec.server.rest.QueryWrapper` - PullRequest
0 голосов
/ 12 марта 2019

Я использую Apache Drill из коробки во встроенном режиме.

Когда я отправляю запрос POST на localhost:8047/query.json, он выдает 400 с ошибкой:

Cannot construct instance of `org.apache.drill.exec.server.rest.QueryWrapper`, problem: null
 at [Source: (org.glassfish.jersey.message.internal.EntityInputStream); line: 4, column: 1]

Запрос:

{
    "QueryType": "SQL",
    "Query": "SELECT count(*) as `cnt` FROM  dfs.`/data/demo/Parquet/*.parquet`"
}

Content-Type: application/json

При работе в распределенном режиме это также происходит. Выполнение запроса через веб-интерфейс выглядит нормально ...

По данным гугла я единственный с этой ошибкой. Есть идеи?

1 Ответ

1 голос
/ 12 марта 2019

В запросе была глупая ошибка. Поля в запросе должны быть в camelCase , не в QueryType, а в queryType . В предыдущем запросе были заглавные буквы 'Q' из-за неправильных настроек сериализатора.

Я не замечал эту деталь в течение часа.

Это работает:

{
    "queryType": "SQL",
    "query": "SELECT count(*) as `cnt` FROM  dfs.`/data/demo/Parquet/*.parquet`"
}

Было бы неплохо, если бы API возвращал обычную ошибку, такую ​​как «queryType отсутствует» вместо загадочного Cannot construct instance of org.apache.drill.exec.server.rest.QueryWrapper.

Надеюсь, это спасет кого-то час жизни.

...