【问题标题】:File Splitting with DataStage (8.5)使用 DataStage 进行文件拆分 (8.5)
【发布时间】:2017-09-22 08:34:42
【问题描述】:

我的工作成功地生成了一个包含数亿行的顺序文件 (CSV) 输出,有人可以提供一个示例,将输出写入一百个单独的顺序文件,每个文件都有一百万行吗?

顺序文件阶段是什么样子的,它是如何配置的?

这是为了最终允许 QA 审查任何一个单独的输出,而无需使用可以查看大文本文件的特殊文本编辑器。

【问题讨论】:

  • 如果你真的很绝望,你可以做一个自定义步骤,将结果通过管道传递给split Unix 命令。像split -l=1000000 这样的东西应该适合你的情况。

标签: datastage large-data


【解决方案1】:

根据@Mr. 的建议。 Llama 和缺乏即将推出的解决方案,我们决定在预定的 DataStage 事件结束时执行一个简单的脚本。

#!/bin/bash
# usage:
# sh ./[script] [input]

# check for input:
if [ ! $# == 1 ]; then
  echo "No input file provided."
  exit
fi

# directory for output:
mkdir split

# header without content:
head -n 1 $1 > header.csv

# content without header:
tail +2 $1 > content.csv

# split content into 100000 record files:
split -l 100000 content.csv split/data_

# loop through the new split files, adding the header
# and a '.csv' extension:
for f in split/*; do cat header.csv $f > $f.csv; rm $f; done;

# remove the temporary files:
rm header.csv
rm content.csv

粗略,但在这种情况下对我们有用。

【讨论】:

    猜你喜欢
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    相关资源
    最近更新 更多