Apache Drill无法读取Windows本地文件问题求助
排查Apache Drill无法读取本地.txt文件的问题
1. 补全文件格式映射配置
你的存储配置中,formats仅定义了json、csv、parquet三种格式的扩展名匹配规则,但未包含.txt。Drill只会识别配置中指定扩展名的文件,可修改data_access的JSON配置,在csv格式的extensions数组里添加txt:
"csv": { "type": "text", "extensions": [ "csv", "txt" ], "lineDelimiter": "\n", "fieldDelimiter": ",", "quote": "\"", "escape": "\"", "comment": "#" }
修改后执行ALTER SYSTEM RELOAD STORAGE PLUGINS;刷新配置,或重启Drill服务。
2. 查询时显式指定文件格式
若不想修改配置,可在SQL中直接指定文件解析格式,强制Drill用CSV规则读取txt文件:
select * from data_access.channel_0.`20240806_205605.txt` format csv;
或者更灵活地指定参数:
select * from data_access.channel_0.`20240806_205605.txt` (type => 'text', fieldDelimiter => ',');
3. 验证Workspace路径与文件可见性
- 先执行以下语句,确认Drill能识别
channel_0工作区下的目标文件:
show files in data_access.channel_0;
如果结果中看不到20240806_205605.txt,需检查:
- 配置的
location路径是否完全正确(Windows路径正斜杠/或双反斜杠\均可,但要注意目录层级、大小写是否匹配) - Drill运行用户是否拥有该目录的读取权限(可尝试将目录权限开放给所有用户测试)
4. 确认存储插件状态
在Drill Web UI(默认地址http://localhost:8047)的Storage页面,检查data_access插件状态是否为Enabled;若刚修改过配置,需点击Update按钮重新加载插件。
5. 检查文件属性
Windows系统中,若文件被标记为「隐藏」或带有加密属性,Drill可能无法识别。右键文件→属性,取消隐藏属性,确保未开启加密。
内容的提问来源于stack exchange,提问作者baixianjie
相关产品推荐
相关产品推荐

