【问题标题】:Apache Drill: Create Table Error While Selecting from Json DataApache Drill:从 Json 数据中选择时创建表错误
【发布时间】:2017-03-23 16:17:08
【问题描述】:

下面的命令工作正常。

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]

【问题讨论】:

    标签: json apache hadoop apache-drill mapr


    【解决方案1】:

    您可以尝试在路径周围加上单引号,例如:

    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;
    

    【讨论】:

    • 仍然无法正常工作。错误:org.apache.drill.common.exceptions.UserRemoteException:解析错误:遇到“;”在第 1 行第 38 列。期待以下之一: ...“UESCAPE”... SQL Query 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
    【解决方案2】:

    这是有效的

    创建表 myHDFS.testdata.`/xuser/sample2.json` AS SELECT * FROM myHDFS.testdata.`sample.json`

    带存储配置

    “测试数据”:{ "位置": "/dir/data/test", “可写”:真的, “默认输入格式”:“json” },

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多