【问题标题】:Exporting Data from sas into CSV file将数据从 sas 导出到 CSV 文件
【发布时间】:2021-07-16 10:16:40
【问题描述】:

我正在尝试从 SAS 下载文件并将其导入 Hadoop。 它是一个巨大的数据集 - 6GB。 当我将 sas 数据集导出到 csv 文件然后导入回 sas 时。(因为我在 hadoop 中遇到的问题很少,我尝试导入回 SAS 并验证值)。导入在同一工具本身中显示数据集中的问题。 列值混乱。 几列有垃圾值,几列重叠 如何以 csv 格式导出数据集,且列值保持不变。

filename output 'AAA.csv' encoding="utf-8";


Proc export data= input_data
            outfile= output
            dbms = CSV;
run;

【问题讨论】:

  • 您需要展示一些不起作用的示例数据。请记住 CSV 文件是纯文本,因此没有什么可以告诉读者每个字段中期望的值类型。
  • 列如何“重叠”?这是什么意思?
  • 重叠示例:Col1 --> A, Col2 --> B...在导入 Col1 -->AB 和 Col2-->null
  • 因此,对于重叠示例,这是一种可能的原因。如果您有一列的值以单引号开头,而另一列的值以单引号结尾,则 SAS 将在不添加任何引号的情况下输出这些值。但是当 SAS 读取它时,它看起来像一个长引号字符串(SAS 允许使用单引号或双引号来引用 CSV 文件中的字段值)。 7 个字段可能会产生像 1,'beginning,3,4,ending',6,7 这样的行,它将被读取为 4 个字段。

标签: sas export


【解决方案1】:

只是猜测,但请尝试删除字符串中可能存在的任何行尾字符。

例如,您可以使用简单的数据步骤视图即时转换字符串。这是一个用管道字符替换任何 CR 或 LF 字符的方法。

data for_export / view=for_export;
  set input_data;
  array _c _character_;
  do over _c;
    _c = translate(_c,'||','0D0A'x);
  end;
run;
proc export data=for_export outfile=output dbms=CSV;
run;

您还可以注意反斜杠字符。一些读者试图将其解释为转义字符。

【讨论】:

    猜你喜欢
    • 2015-02-22
    • 2015-04-01
    • 2015-09-01
    • 2014-01-09
    • 1970-01-01
    • 2019-01-11
    • 2012-12-22
    • 2020-06-03
    相关资源
    最近更新 更多