在 drill table 中使用 `store.format`='csv' 时如何处理字符串字段中没有转义逗号
How to deal with no escape commas in string fields when using `store.format`='csv' in drill table
当使用钻取脚本将一组 parquet
文件转换为 csv
时,运行 遇到问题,其中某些字段中有逗号。这会导致问题,因为 drill 似乎不会在转换后的文件中的字段周围自动添加任何转义 "<field>"
或 '<field>'
字符(例如,对于看起来像 "Soft-drink, Large" 的字符串值)。
脚本看起来像
/opt/mapr/drill/drill-1.11.0/bin/sqlline \
-u jdbc:drill:zk=node001:5181,node002:5181,node003:5181 \
-n $(tail -n+1 $basedir/src/drill-creds.txt | head -1) \
-p $(tail -n+2 $basedir/src/drill-creds.txt | head -1) \
--run=$sqldir
其中 sql 被钻 运行 看起来像
alter session set `store.format`='csv';
create table dfs.myworkspace.`/path/to/csv/destination` as
select ....
from dfs.myworkspace.`/path/to/origin/files`
有没有人有解决这个问题的通用方法?有没有办法将转义字符添加到转换后的 csv 文件中(尝试检查文档 (https://drill.apache.org/docs/create-table-as-ctas/),但找不到任何相关内容)?
您可以使用 TSV 或 PSV 格式,或者通过配置文件存储插件的格式插件来更新 CSV 单元格的分隔符:
在Drill UI中选择Storage,然后Update dfs storage plugin,找到CSV in formats 并添加 delimiter 属性 和所需的值。
"csv": {
"type": "text",
"extensions": [
"csv2"
],
"skipFirstLine": false,
"extractHeader": true,
"delimiter": "^"
},
另外请检查escape 属性
查看更多:
https://drill.apache.org/docs/text-files-csv-tsv-psv/#use-a-distributed-file-system
当使用钻取脚本将一组 parquet
文件转换为 csv
时,运行 遇到问题,其中某些字段中有逗号。这会导致问题,因为 drill 似乎不会在转换后的文件中的字段周围自动添加任何转义 "<field>"
或 '<field>'
字符(例如,对于看起来像 "Soft-drink, Large" 的字符串值)。
脚本看起来像
/opt/mapr/drill/drill-1.11.0/bin/sqlline \
-u jdbc:drill:zk=node001:5181,node002:5181,node003:5181 \
-n $(tail -n+1 $basedir/src/drill-creds.txt | head -1) \
-p $(tail -n+2 $basedir/src/drill-creds.txt | head -1) \
--run=$sqldir
其中 sql 被钻 运行 看起来像
alter session set `store.format`='csv';
create table dfs.myworkspace.`/path/to/csv/destination` as
select ....
from dfs.myworkspace.`/path/to/origin/files`
有没有人有解决这个问题的通用方法?有没有办法将转义字符添加到转换后的 csv 文件中(尝试检查文档 (https://drill.apache.org/docs/create-table-as-ctas/),但找不到任何相关内容)?
您可以使用 TSV 或 PSV 格式,或者通过配置文件存储插件的格式插件来更新 CSV 单元格的分隔符:
在Drill UI中选择Storage,然后Update dfs storage plugin,找到CSV in formats 并添加 delimiter 属性 和所需的值。
"csv": {
"type": "text",
"extensions": [
"csv2"
],
"skipFirstLine": false,
"extractHeader": true,
"delimiter": "^"
},
另外请检查escape 属性
查看更多: https://drill.apache.org/docs/text-files-csv-tsv-psv/#use-a-distributed-file-system