目前我只能在dfs.tmp.
工作区工作,这非常烦人。所以我尝试change the default workspace到一个新的(现有的)文件夹(由钻取用户拥有):
"workspaces": {
"default": {
"location": "/var/drill",
"writable": true,
"defaultInputFormat": null
},
"root": {
"location": "/",
"writable": false,
"defaultInputFormat": null
},
...
但它不起作用:
CREATE TABLE `test` as SELECT 'Test' FROM (VALUES(1))
返回以下错误,表示修改后的设置将被忽略。
org.apache.drill.common.exceptions.UserRemoteException:PARSE ERROR:根模式是不可变的。在根模式中不允许创建或删除表/视图。使用' USE模式'选择模式。命令。
我也尝试过前缀(没有成功)
CREATE TABLE dfs.default.`test` as SELECT 'Test' FROM (VALUES(1))
PARSE ERROR:遇到"。默认"在第1行,第17栏。
还尝试重新启动钻取并使root可写。
答案 0 :(得分:1)
添加这个答案只是为了结合ColemanTO和devツ两个现有的答案 并举例说明。
因此,就像到目前为止所说的其他答案一样,“查询”中保留了“默认”一词。您正确地引用docs来创建新的默认工作区,以便定义可写根(/)工作区。但是,documentation还给出了一个示例,为了实际引用自定义“默认”工作区,您需要添加反引号。
所以如果你添加了一个工作区
{
"type": "file",
"enabled": true,
"connection": "hdfs:///",
"config": null,
"workspaces": {
"default": {
"location": "/some/path",
"writable": true,
"defaultInputFormat": null
}
...
}
...
}
你会在如下的查询中引用:
SELECT * FROM dfs.`default`.`path/relative/to/custom/default/location` LIMIT 10;
如果是原始发布的问题,您还可以创建一个名为“var_drill”的新工作区,这样您就不必在查询中转义关键字“default”。
答案 1 :(得分:0)
在工作区中使用除default
之外的任何其他名称。
default
为reserved keyword。
答案 2 :(得分:0)
“注意:默认是保留字。在后面的刻度中用作标识符时,必须附加保留字。”
答案 3 :(得分:0)
是默认值是保留关键字,应在反引号中指明