0

我正在尝试在单节点设置中使用 apache Drill 将超过 600gb 的 csv 文件重新格式化为镶木地板。

我运行我的 sql 语句:

CREATE TABLE AS Data_Transform.'/' AS
....
FROM Data_source.'/data_dump/*'

它正在创建镶木地板文件,但出现错误:

Query Failed: An Error Occurred
org.apache.drill.common.exceptions.UserRemoteException: RESOURCE ERROR:     
One or more nodes ran out of memory while executing the query.

有没有解决的办法?还是有其他方法可以进行转换?

4

1 回答 1

0

我不知道在本地节点上查询所有这些 GB 是否可行。如果您已经按照文档配置了内存,那么使用 Drillbits 集群来共享负载是显而易见的解决方案,但我想您已经知道了。

如果您愿意尝试,并且您正在使用 select * 转换 csv 文件来查询 csv,而不是选择单个列,请将查询更改为 select columns[0] as user_id,columns 1 as user_name。如果可能,将任何列转换为 int、float、datetime 等类型。这避免了在 varchars 中存储数据的读取开销,并为您未来的查询准备数据,这些查询需要进行任何分析。

我还看到了来自 Drill 开发人员的以下建议:手动将文件拆分为更小的文件,以克服本地文件系统功能的限制。Drill 不会在块拆分时拆分文件。

于 2015-09-16T17:39:16.923 回答