Apache Drill:从Json数据中选择时创建表错误

时间:2017-03-23 16:17:08

标签: json apache hadoop apache-drill mapr

以下命令工作正常。 SELECT TO_TIMESTAMP(ts,'yyyyMMddHHmmss')FROM dfs.tmp` / mapr / my.cluster.com / hive / cpf_sales.json

但是当我尝试从select语句创建一个表时,它就会出错。以下是我试过的那个

ALTER SESSION SET store.format ='json'; 使用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;

错误: org.apache.drill.common.exceptions.UserRemoteException:PARSE ERROR:遇到“;”在第1行第8列。期待其中一个:“。” ...“[”... SQL Query使用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 [错误ID:81cbe394-b3c6-4c34-80ad-83325f748ae1 on iot3:31010] < / p>

使用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;

错误: org.apache.drill.common.exceptions.UserRemoteException:PARSE ERROR:遇到“;”在第1行,第12栏。期待其中一个:“。” ...“[”... SQL查询使用dfs.tmp; ^ SELECT COLUMNS [0],COLAMNS [1]来自dfs.tmp。/mapr/my.cluster.com/donuts.json [错误ID:5e9d1d20-a804-4d09-8b69-d76b3c009647 on iot2:31010]

2 个答案:

答案 0 :(得分:0)

您可以尝试在路径中放置单引号,例如:

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;

答案 1 :(得分:0)

这是有效的

CREATE TABLE myHDFS.testdata ./xuser / sample2.json` AS SELECT * FROM myHDFS.testdata .sample.json`

使用存储配置

&#34; testdata&#34;:{   &#34; location&#34;:&#34; / dir / data / test&#34;,   &#34;可写&#34;:是的,   &#34; defaultInputFormat&#34;:&#34; json&#34; },