Apache Drill: ошибка создания таблицы при выборе из данных Json

Команда ниже работает нормально.

SELECT TO_TIMESTAMP(`ts`,'yyyyMMddHHmmss') 
FROM dfs.tmp`/mapr/my.cluster.com/hive/cpf_sales.json

Но когда я пытаюсь создать таблицу из оператора select, она выдает ошибку. Ниже те, которые я пробовал

ALTER SESSION SET `store.format`='json';
use dfs;

CREATE TABLE by_yr (gen_date)  AS SELECT TO_TIMESTAMP(`ts`,'yyyyMMddHHmmss') FROM dfs.`/mapr/my.cluster.com/hive/cpf_sales.json` LIMIT 100;

**Error:**
org.apache.drill.common.exceptions.UserRemoteException: PARSE ERROR: Encountered ";" at line 1, column 8. Was expecting one of: "." ... "[" ... SQL Query use dfs; ^ CREATE TABLE by_yr (gen_date) AS SELECT TO_TIMESTAMP(`ts`,'yyyyMMddHHmmss') FROM dfs.`/mapr/my.cluster.com/hive/cpf_sales.json` LIMIT 100 [Error Id: 81cbe394-b3c6-4c34-80ad-83325f748ae1 on iot3:31010]

use dfs.tmp;

CREATE TABLE by_yr (gen_date)  AS SELECT TO_TIMESTAMP(`ts`,'yyyyMMddHHmmss') FROM dfs.tmp`/mapr/my.cluster.com/hive/cpf_sales.json` LIMIT 100;

**Error:**
org.apache.drill.common.exceptions.UserRemoteException: PARSE ERROR: Encountered ";" at line 1, column 12. Was expecting one of: "." ... "[" ... SQL Query use dfs.tmp; ^ SELECT COLUMNS[0], COLUMNS[1] from dfs.tmp.`/mapr/my.cluster.com/donuts.json` [Error Id: 5e9d1d20-a804-4d09-8b69-d76b3c009647 on iot2:31010]

person Vikas Reddy Aravabhumi    schedule 23.03.2017    source источник


Ответы (2)


Можете ли вы попробовать поставить одинарные кавычки вокруг пути, например:

ALTER SESSION SET store.format='json'; use dfs;

CREATE TABLE by_yr (gen_date) AS 
SELECT TO_TIMESTAMP(ts,'yyyyMMddHHmmss') 
FROM dfs.'/mapr/my.cluster.com/hive/cpf_sales.json' LIMIT 100;
person AM_Hawk    schedule 23.03.2017
comment
Все еще не работает. Ошибка: org.apache.drill.common.exceptions.UserRemoteException: ОШИБКА РАЗБОРКИ: Обнаружено; в строке 1, столбце 38. Ожидалось одно из: ... UESCAPE ... SQL-запрос ALTER SESSION SET store.format = 'json'; ^ использовать дфс; CREATE TABLE by_yr (gen_date) AS SELECT TO_TIMESTAMP(ts,'yyyyMMddHHmmss') FROM dfs.'/mapr/my.cluster.com/hive/cpf_sales.json' LIMIT 100 - person Vikas Reddy Aravabhumi; 24.03.2017

Это работает

СОЗДАТЬ ТАБЛИЦУ myHDFS.testdata.`/xuser/sample2.json` AS SELECT * FROM myHDFS.testdata.`sample.json`

с конфигурацией хранилища

"testdata": { "location": "/dir/data/test", "доступно для записи": true, "defaultInputFormat": "json" },

person Vezir    schedule 24.03.2017