我什至不确定我是否正确地提出了这个问题,但我会尝试 - 我有一堆从 Linux 系统上的 oracle 导出生成的巨大文本文件。每个文件大小约为 30 GB,我有大约 50 个。目标是将此数据导出到 Azure SQL 数据仓库。在这种情况下,BCP 不是保持数据大小的正确方法,所以我不得不使用 Polybase。从 ASCII 转换为 UTF8 编码后,我在查询外部表时遇到了问题。Polybase 不能很好地处理固定宽度的文本文件,每行都有换行符。
文本文件看起来像这样
101,102,103,104,105,106,107
108,108,109,110,111,112,113
114,115,116,117,118,119,120
121,122,123
--nothing here, just a blank line
201,202,203,204,205,206,207
208,209,210,211,212,213,214
215,216,217
Polybase 尝试处理从 101 到 107 的错误,并抱怨此文件中没有足够的列来处理。
这就是我认为正在发生的事情。固定宽度和换行符使其将换行符视为行分隔符。
如何将此文件转换为如下所示:
101,102,103,104,105,106,107,108,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123{CR}{LF}
201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217{CR}{LF}