1

我正在尝试卸载红移数据并使用 spark 读取它。但是与 Redshift 表中的原始记录相比,我在卸载数据中获得了更多行。发生这种情况是因为数据中有换行符。如何卸载数据以便我可以使用 spark 安全地读取它(而不会遇到格式错误的记录问题)

一列的样本数据 -

5.7.1 [23.253.182.55      18] Our system has detected that this message is
5.7.1 likely suspicious due to the very low reputation of the sending IP
5.7.1 address. To best protect our users from spam, the message has been
5.7.1 blocked. Please visit
5.7.1  https://support.google.com/mail/answer/188131 for more information. o68-v6si2862477itg.128 - gsmtp

我在卸载时尝试了以下三种组合但没有运气 -

ALLOWOVERWRITE 分隔符 '\001' 转义;

ALLOWOVERWRITE 分隔符 '\001' 转义加引号;

ALLOWOVERWRITE 分隔符 '\001' 添加引号;

在此处输入图像描述

4

1 回答 1

3

unload 语法需要一个select 语句(任意查询)作为输入,而不仅仅是源表名,因此您可以在查询中用空字符串或空格替换换行符:

replace(your_text_field,'\n',' ')

于 2018-10-08T12:05:50.157 回答