1

我有类似于以下内容的日志:

value1 value2 "value 3 with spaces" value4

使用:

  "formats": {
    "csv": {
      "type": "text",
      "delimiter": " "
    }
  }

对于由“”分隔的存储插件,我提供了以下列:

columns[0] | columns[1] | columns[2] | columns[3] | columns[5] | columns[6] | columns[7]
value1     | value2     | value      | 3          | with       | spaces     | value4

我想要的是:

columns[0] | columns[1] | columns[2]              | columns[3] 
value1     | value2     | value 3 with spaces     | value4
4

1 回答 1

0

据我所知,在 Drill 中没有办法跳过分隔符。但是,如果变量 3 是唯一可以在两者之间包含“”的变量,我能想到的解决方法是:

  • 构造您的第一个查询,以便 columns[3] 始终是最后一个,例如

从 dfs.default./path/to/your/file 中选择列 [0]、列 [1]、列 [2]、列 [4]、列 [3];

  • 使用 CONCATENATE() 命令在单独的列中构建变量。

另一种解决方法是在让 Drill 读取文件之前更改文件中的默认分隔符。取决于您从中提取数据的位置,这可能可行或不可行。

祝你好运,如果您正在寻找更多关于 Drill 的内容,请务必查看 MapR 在 Drill 上的社区页面,其中包含可能有用的代码示例:https ://community.mapr.com/community/products/apache-drill

于 2017-02-13T19:03:46.767 回答